-
@RestController相当于@Controller和@Response
-
@RequestMapping可以被@PostMapping和GetMapping替代
-
在restful的框架jersey的@FormParam和@QueryForm可以被spring的@RequestParam统一取代
-
在restful的框架jersey的@Produce和@Consumes中可以在@RequestMapping中的produce和consumes属性设置
-
spring-boot-parent继承了spring-boot-dependencies,可以在maven中点进去看有哪些常用的包被包含在内了。
-
@componentScan注解可以被注解多次,所以遇到一个包要全部包括,另外一个包要其中一部分就可以分开写,以免写一堆filter
-
@ComponentScan在使用了
useDefaultFilters = false
而后再用filter后,不再是只取扫描被注解了@Component
这系列的类了,所有被发现的类都会被包括,需要注意。 -
maven dependency managent可以引入其他pom.xml中依赖的包,免去了写的烦恼
-
maven dependency managent中的
<type>pom</type>
表示引入的是一个pom -
maven dependency managent中的
<scope>import</scope>
表示是引入依赖 -
SpringApplication可以用多种函数启动如
SpringApplication.run
或者new SpringApplicationBuilder
等 -
application.properties是基本配置,自定义的分支配置是在其基础上覆盖,所以这里也要小心
-
Inherited注解表示在父类上的这个注解可以被子类继承
-
Spring的import注解表示可以将目标configuration类导入使用
-
spring@Order注解主要用来控制配置类的加载顺序
-
静态的类可能会被调用到其中方法,但是方法中可能会被用到没有被初始化的静态属性,而这个类是被标记了@component的,此时如果没用Component扫描到这个类,但是这个类仍然可用,会导致空指针即是没有被注入的糟糕且隐蔽的局面,需要注意。
-
java内部类的默认构造函数不是无参数的,带有一个外部类对象的参数,所以在尝试将内部类作为一个Bean时,会遇到一些问题,需要手工配置。
-
springboot中旧版测试中的
@SpringApplicationConfiguration(classes=)
被替换成@SpringBootTest
AOP
- 可以使用环绕增强的注入方式,来做ExceptionHandler从而使得错误码能够被获取和应用。
JAVA注解基础
- @Bean的作用相当于告诉spring可以从被标注@Bean的对象和方法中拿取Bean,而Component这一系列标注不但是申明了是一个Bean而且会自动为其创建Bean
- ElementType.PARAMETER指的是方法参数
- @Qualifier除了可以和@Autowired一起使用来解除Bean的冲突,还可以在自定义注解上使用,从而让这个注解自动成为一个qualifier,而直接使用这个注解就可以达到@qualifier("…")一样的作用来表示一个特定的Bean。相同的,@Inject可以和@Named配合注入。
关于注解的三个注入方式的来源:@Autowired是spring专有注解,@Resource是java中JSR250中的规范,@Inject是java中JSR330中的规范 - @implementedBy()表示接口会被哪个类实现
- @Singleton表示单例实现类
- @ConfigurationProperties可以将配置类的信息绑定进入实体类,还可以设置配置的前缀
springboot调试
- 可以使用spring-boot-starter-actuator来查看所有注入的bean。需要在pom.xml中引入该包,在properties中开启
management.endpoints.web.exposure.include=beans
,最后在XXX/actuator/beans中查看所有信息。