SpringCloud与SpringBoot版本对应
https://start.spring.io/actuator/info
1.@slf4j
打印日志信息
2.@ControllerAdvice、@RestControllerAdvice
全局捕获异常
3.@EnableScheduling
开启定时;@Scheduled:可加属性 - fixedRate = 6000,上一次开始执行时间点之后6秒再执行;
@Scheduled(fixedDelay = 6000)
:上一次执行完毕时间点之后6秒再执行
4.开发测试类
@RunWith(SpringRunner.class)
和@SpringBootTest
注解,在测试方法的顶端添加@Test;@RunWith
是一个运行器,SpringRunner.class
表示使用Spring Test
进行单元测试,其中SpringRunner
继承类SpringJUnit4ClassRunner
。
5.@DependsOn
用来控制Bean初始化顺序;让一些被依赖的Bean提前加载
6.@SchedulerLock
分布式锁,确保计划的任务在同一时刻最多执行一次
7.@Order
定义IOC容器中Bean执行执行顺序的优先级;值越小优先级越高,可谓负数
8.@Scheduled
属性cron自动生成器:在线Cron表达式生成器
9.SpringBoot官方文档:
10.@ServerEndpoint
创建WebSocket端点.
11.获取配置文件中的属性:
@Value、@ConfigurationProperties、@PropertyResource
12.@Profile
指定组件在哪个环境的情况下才能被注册到容器中。
13.AOP(Aspect Oriented Programing)
就说所说的动态代理;AOP指在程序运行期间动态 的将某段代码切入到指定方法指定位置进行运行的编程方式。
通知方法:
前置通知(@Before):在目标方法运行之前
后置通知(@After):在目标方法运行结束之后运行
返回通知(@AfterReturning):在目标方法正常返回之后运行
异常通知(@AfterThrowing):在目标方法出现异常后运行
环绕通知(@Around):动态代理,手动推进目标方法运行
14.实现CommandLineRunner接口
容器启动之后执行一些功能(如:加载一些资源文件)或预先加载数据,重写run方法
15.@XStreamAlias
java和xml对象之间的转化,可以和@XmlRootElement注解一起使用
16.@ConfigurationProperties
读取配置文件信息或配置中心的配置信息;自动封装到类对应的相关字段信息。
17.@ConditionalOnProperty
和配置文件中指定的值进行比较,只有两者相同时才会将相应的配置类才会生效。
一般配置类上
prefix:配置文件中的前缀。
name:配置的名字。
havingValue:它的值与配置文件的值对比,当两个值相同,类会被加载到spring的IOC容器中。
应用场景:
比如说一个接口有两个实现类,根据yml配置,在使用的时候根据配置选择使用哪个实现类
18.PropertySource次序
其中优先级最高的是命令行参数
19.@EventListener
配合ApplicationContext.publishEvent使用;使用到了观察者模式/发布订阅模式
20.@Transactional失效
20.1.多线程环境下
原因:线程不归spring管
涉及问题:多线程事务回滚
解决方案:使用sqlsession手动提交事务
20.2.非public修饰的方法
有spring aop本质决定的
20.3.类方法内部调用
20.4.错误的传播机制
20.5.嵌套事务
20.6.注解标注在接口上
21.idea+docker远程一键部署springboot项目
22.发送http请求用restemplate
23.TransactionSynchronizationManager
事务成功提交后执行操作