springboot注解
- @RestController 在源码声明上同时有 @Controller 和 @ResponseBody 注解,所以使用了这个注解的类会被看作一个Controller,所以 @RestController 与 @Controller 的区别就是,@Controller返回的是ViewAndModel,@RestController返回的是字符串直接发送回给客户端。
- @RestController 源码声明:
@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Controller @ResponseBody public @interface RestController
- @EnableAutoConfiguration 注解是类级别的,这个注解告诉Spring Boot“猜测”将如何配置Spring,它是基于添加的jar依赖。
Bean扫描机制-概览
<beans ...>
<context:component-scan base-package="a.b" name-generator="a.SimpleNameGenerator"/>
</beans>
- 先配置扫描地址,当一个 Bean 被自动检测到时,会根据那个扫描器的 BeanNameGenerator 策略生成它的 bean 名称。
- 默认情况下,对于包含 name 属性的 @Component、@Repository、 @Service 和 @Controller,会把 name 取值作为 Bean 的名字。
- 如果这个注解不包含 name 值或是其他被自定义过滤器发现的组件,默认 Bean 名称会是小写开头的非限定类名。
- 如果你不想使用默认 bean 命名策略,可以提供一个自定义的命名策略。首先实现 BeanNameGenerator 接口,确认包含了一个默认的无参数构造方法。然后在配置扫描器时提供一个全限定类名,如上代码。
- 通过上述注解标识的 Bean,其默认作用域是"singleton"。
Bean扫描机制-详解
- Spring中,管理注解Bean定义的容器有两个:AnnotationConfigApplicationContext和 AnnotationConfigWebApplicationContex。
- 这两个类是专门处理Spring注解方式配置的容器,直接依赖于注解作为容器配置信息来源的IoC容器。
javax.persistence下的注解
- @Entity 说明此java类是实体类 ,与数据库表一一对应
- @Id 表明主键
Lombok
- @Data
- @Getter
Hibernate
- @DynamicUpdate 表示在更新时只会操作有改变的值,不会所有属性的值都再写一边。
jackson
- @JsonProperty ,指定返回JSON数据时的一个名称