- 博客(75)
- 收藏
- 关注
原创 Freesia Spring配置文件与其他文件
common-api -> resources -> 创建i18n文件夹并创建三个messages_common.properties文件。web-api -> resources -> 创建i18n文件夹并创建三个messages.properties文件。
2024-03-06 23:04:33
598
原创 Freesia 项目引用的依赖
UML图项目总依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version></parent><groupId>com.freesia</groupId><artifa
2024-03-02 10:31:35
726
原创 Sentinel dashboard的使用;Nacos保存Sentinel限流规则
方法中使用的是sentinel的api实现限流,高亮的部分需要指定配置文件中已存在,或在代码中定义限流规则的resource,即"echo2"资源需要对应上方Nacos配置文件中的resource。注:建议单独起resource的名字,不要将路由信息当做resource。来进行限流/熔断的,在nacos配置中定义的echo2的resource。注意:该类中的限流/熔断方法必须static修饰。不推荐的原因,客户端、服务端重启后规则不会保存。方法是通过代码层面的。
2023-07-29 14:14:31
884
原创 Sentinel 容灾中心的使用
以上两个方法案例中都涉及到对异常的处理(高亮部分),熔断的方法对应使用Throwable的异常捕获,限流的方法只使用。其中echo方法使用注解形式定义sentinel资源,并通过自定义类的形式指定熔断和限流的方法。【资源】是sentinel限流、熔断的基本单位,可以设置每个资源的阈值。方法中定义echo2资源,然后在实现类中编写对该资源熔断、限流的逻辑。echo2方法则使用官方案例的写法,先在初始化。
2023-07-29 12:52:22
802
原创 Nacos配置中心的使用
由于注册中心、配置中心已经被Nacos中间件接管了,所以在代码中只需要给生产者、消费者添加配置即可,不需要像Eureka一样另外起服务了。
2023-07-27 14:02:35
206
原创 Nacos环境搭建
在nacos_config/user中新增数据即可,但是密码是要BCrypt加密的,写个程序加密。修改这几处地方,之后登录的时候就能使用新增的用户了。, 此处为standalone,然后双击启动。出来,在里面配置集群IP端口即可。
2023-07-27 13:15:10
144
原创 IDEA对JPA@Query查询的文本块支持
无意间我发现了IDEA对这种编码方式的提醒,它推荐我们可以使用文本块,优化完直接豁然开朗!这种三个双引号组包裹的就是文本块了,整个SQL的层次就清晰了,即便是嵌套查询也有条有理。注:\s是转化前的空格,IDEA帮我们转化的时候将空格转义了,如果不想要可以直接删除。
2023-07-22 09:31:58
367
6
原创 SpringData JPA审计字段的使用
系统的数据表中一般会记录固定的字段以记录数据的元数据,例如:ID、创建人、创建时间、修改人、修改时间、逻辑删除、版本号等。JPA实体监听器,用于捕获关于发布(Insert)和更新(update)实体的审计信息。指定一个类,其映射信息应用于从该类继承的实体。映射的超类没有为其定义单独的表。为创建人、修改人字段赋值(如果是做了登录模块的可以使用Session)给父类添加这个注解后,父类中的审计字段就不会被视为独立的表了。审计监听注解与实现类。
2023-07-21 20:53:51
337
原创 JPA查询方式:方法命名规则、@Query查询、结果集类型转化器
注意:在这里的SQL操作都是基于对象,使用的为对象属性,非数据库字段。在持久层接口中,可以直接根据方法的名字进行条件查询。,而非复杂的、定制的SQL的处理,表中的字段,所以最终封装到。保留了写SQL的方法,
2023-07-20 14:31:58
1520
原创 SpringBoot整合SpringData JPA
JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为,详细内容可参考JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系API: 操作实体对象来执行CRUD操作。
2023-07-20 11:25:20
182
原创 JPA的一对一、一对多、多对多查询
因为Blog类中的userId和User类中的id都指向同一个数据库字段,这样就会导致级联更新时重复修改而报错。一对多要相互依赖,首先有多对一,这里Blog类中需要定义一个User,并添加注解。都会将关联的实体类对象包含进去,导致执行查询时循环调用到栈溢出。然后User类中需要定义Blog集合,接收多个Blog对象。区别只是类型是单个对象还是集合对象。在JPA中要慎用,因为重写的。,指定name关联的字段。
2023-07-20 11:24:39
625
原创 SpringBoot整合SpringCloudStream3.1+版本Kafka
定义channel名字,每个channel又可以作为生产者(in)与消费者(out)4. content-type:消息序列/反序列化的类型(见源码的支持的类型)3. binder:绑定当前使用的MQ类型(见betrice-kafka);1. destination(生产/消费者通向的topic);: 是一个map形式(具体看源码的Properties定义)引入通道绑定配置文件,即消息生产、消费者的关系。2. group:消费者组名;
2023-07-19 15:52:44
1137
2
原创 SpringBoot整合SpringCloudStream3.1+版本的Kafka死信队列
try {log . info("发送消息:" + message);log . error("异常消息:" + e);} }
2023-07-19 15:51:14
954
原创 SpringBoot整合SpringSecurity+JWT
注意:SIGNATURE是生成token的公钥,当外部token进来时需要公钥解密。
2023-07-18 15:48:12
808
原创 设计模式——解释器模式
解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的模式,现实项目中用得较少。给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
2023-07-16 11:59:25
549
原创 设计模式——状态模式
当一个对象内在的状态改变时,允许其改变行为,这个对象看似改变了其类状态模式的核心是封装,状态的变更引起行为的变更,从外部看来就好像这个对象对应的类发生了变化一样。
2023-07-15 11:10:42
503
原创 设计模式——访问者模式
封装一些的对于某种数据结构中的各元素的操作,它可以在不改变数据的前提下定义作用于这些元素的新的操作访问者模式(Visitor pattern)是相对简单的模式,也可以作为迭代器模式的补充。
2023-07-14 14:05:50
682
原创 设计模式——观察者模式
观察者模式(Observer Partern)也叫做发布/订阅模式(Publish/Subscribe),一种以监听为核心的设计模式。定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
2023-07-13 15:53:57
880
1
原创 设计模式——备忘录模式
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,之后就可以将该对象恢复到原先保存的状态。备忘录模式(Memento Pattern)是一种弥补缺陷的模式,能够在失败的操作后读档。
2023-07-13 11:07:52
497
原创 设计模式——抽象工厂模式
和其子类为例,如果AbstractYellowHuman下增加一个产品C,则生产产品C的工厂(MaleFactory、FemaleFactory)就都需要加上生产产品C的方法(createC())。一个产品的添加导致其他代码修改,这严重违反开闭原则。所以使用抽象工厂模式需要考虑产品的变动以及控制产品生产的工厂的数量问题。
2023-07-12 13:29:45
387
原创 设计模式——工厂方法模式
工厂方法模式的使用频率非常高定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法将一个类的实例化延迟到其子类。
2023-07-12 13:27:30
417
原创 设计模式——迭代器模式
它提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。迭代器是为容器服务的,能容纳元素的对象可以称为容器,例:List、Set、Map迭代器模式(Iterator Pattern)已经是没落的设计模式,常用的容器基本都有成熟稳定的实现,基本不会再去单独写一个迭代器。
2023-07-12 10:08:15
471
原创 设计模式——门面模式
门面模式(Façade Pattern)又称为外观模式,是一种比较常用的封装模式。要求一个子系统的外部与其内部的通信通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
2023-07-11 17:15:21
299
原创 设计模式——命令模式
将一个请求封装成一个对象,从而让你使用不同的请求吧客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是一个高内聚的模式。
2023-07-11 13:39:43
865
原创 设计模式——适配器模式
适配器模式又称为变压器模式、包装模式(Wrapper)将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
2023-07-11 11:30:43
584
原创 设计模式——策略模式
策略模式(Strategy Pattern)也称为(Policy Parttern)。定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。
2023-07-09 19:54:49
395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人