springBoot注解知识点归纳:
1、@RestController和@RequestMapping注解区别
当实现REST ful web services时,response将一直通过response body发送。
--@Controller:用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),
一般这个注解在类中,通常方法需要配合注解@RequestMapping
--@RequestMapping:注解提供路径信息,通过来自"/"路径的HTTP请求都应该被映射到 home 方法
--@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集
2、@EnableAutoConfiguration
注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
由于spring-boot-starter-web添加了Tomcat和spring MVC,所以auto-configuration将嘉定你在开发一个web应用
并相应地对Spring进行配置。在运用过程中,@EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个
@Configuration 类上来选择自动配置,它一般用在主 @Configuration 类。
当如果不需要特定的自动配置功能,可以用使用@EnableAutoConfiguration排除属性并禁用,如:
@Configuration@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
3、@Configuration
@Configuration注解该类,等价于XML中配置beans;用@Bean标注方法等价于XML中配置bean,如:
@ComponentScan(basePackages = "com.*",includeFilters = {@ComponentScan.Filter(Aspect.class)})
4、@ComponentScan
表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括
@Configuration,@Autowired,@Service,@Repository等注册的类
5、@SpringBootApplication
等同于@Configuration ,@EnableAutoConfiguration 和 @ComponentScan三个配置,主要是因为在同一个类
中可能会频繁的运用这三个注解,springBoot便再次封装他们。
6、@ConfigurationProperties
直接指定properties文件的内容,属性prefix,如:
@ConfigurationProperties(prefix="connection")
7、@ResponseBody
@ResponseBody--表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据中,加上@responsebody后返回结果
不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,
会直接返回json数据。
@RequestMapping--在使用@RequestMapping后,返回值通常解析为跳转路径。
8、@Component
泛指组件,当组件不好归类的时候,可以使用@Component进行标识,一般加在公共方法上。
9、@AutoWired、@Service和@Repository
--@AutoWired:byType方式,自动导入。利用配置好的Bean,完成属性、方法的组装,
它可以对类成员变量、方法及构造函数进行注解,完成在本类的工作。
注:当加上(required=false)时,即使找不到bean也不报错。
--@Service:一般用于修饰service层的组件
--@Repository:使用@Repository注解可以确保DAO或者repositories提供异常转译,
这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,
同时也不需要为它们提供XML配置项。
--@Inject:等价于默认的@Autowired,只是没有required属性;
10、@RequestParam、@PathVariable和@PathParam
--@RequestParam:是从request里面拿取值
--@PathVariable:@PathVariable 是从一个URI模板里面来填充
示例:
@RequestMapping("/hello/{id}")
public String getDetails(@PathVariable(value="id") String id,
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
.......
}
--@PathParam:这个注解是和spring的pathVariable是一样的,也是基于模板的,但是这个是jboss包下面的一个实现,
上面的是spring的一个实现,都要导包。
11、@ControllerAdvice和@ExceptionHandler(Exception.class)
--@ControllerAdvice
处理全局异常,包含@Component,可以扫面到,统一处理。
--@ExceptionHandler
用在方法上面表示遇到这个异常就执行以下方法。
12、@value
读取application.properties里面的配置,key,如:
@Value("${face_api_key}")
private String API_KEY;
13、@PropertySource 和@ImportResource
--@PropertySource:如果需要有自定义的属性文件需要加载,
可以使用该注解进行注入,并用@Value配合使用
--@ImportResource:
14、@Bean
用@Bean标注方法等价于XML中配置的bean
@Value(value = "#{message}") private String message
JPA注解:
15、@Entity和@Table
@Entity:@Table(name=”“):表明这是一个实体类。
一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略
16、@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”)
表示主键生成策略是sequence(可以为Auto、IDENTITY、native等,Auto表示可在多个数据库间切换),
指定sequence的名字是repair_seq。
17、@Basic(fetch=FetchType.LAZY)
标记可以指定实体属性的加载方式。
18、@OneToOne、@OneToMany、@ManyToOne
对应hibernate配置文件中的一对一,一对多,多对一。
19、@Id:表示该属性为主键。
20、@Column:如果字段名与列名相同,则可以省略。
1、@RestController和@RequestMapping注解区别
当实现REST ful web services时,response将一直通过response body发送。
--@Controller:用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),
一般这个注解在类中,通常方法需要配合注解@RequestMapping
--@RequestMapping:注解提供路径信息,通过来自"/"路径的HTTP请求都应该被映射到 home 方法
--@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集
2、@EnableAutoConfiguration
注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
由于spring-boot-starter-web添加了Tomcat和spring MVC,所以auto-configuration将嘉定你在开发一个web应用
并相应地对Spring进行配置。在运用过程中,@EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一个
@Configuration 类上来选择自动配置,它一般用在主 @Configuration 类。
当如果不需要特定的自动配置功能,可以用使用@EnableAutoConfiguration排除属性并禁用,如:
@Configuration@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
3、@Configuration
@Configuration注解该类,等价于XML中配置beans;用@Bean标注方法等价于XML中配置bean,如:
@ComponentScan(basePackages = "com.*",includeFilters = {@ComponentScan.Filter(Aspect.class)})
4、@ComponentScan
表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括
@Configuration,@Autowired,@Service,@Repository等注册的类
5、@SpringBootApplication
等同于@Configuration ,@EnableAutoConfiguration 和 @ComponentScan三个配置,主要是因为在同一个类
中可能会频繁的运用这三个注解,springBoot便再次封装他们。
6、@ConfigurationProperties
直接指定properties文件的内容,属性prefix,如:
@ConfigurationProperties(prefix="connection")
7、@ResponseBody
@ResponseBody--表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据中,加上@responsebody后返回结果
不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,
会直接返回json数据。
@RequestMapping--在使用@RequestMapping后,返回值通常解析为跳转路径。
8、@Component
泛指组件,当组件不好归类的时候,可以使用@Component进行标识,一般加在公共方法上。
9、@AutoWired、@Service和@Repository
--@AutoWired:byType方式,自动导入。利用配置好的Bean,完成属性、方法的组装,
它可以对类成员变量、方法及构造函数进行注解,完成在本类的工作。
注:当加上(required=false)时,即使找不到bean也不报错。
--@Service:一般用于修饰service层的组件
--@Repository:使用@Repository注解可以确保DAO或者repositories提供异常转译,
这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,
同时也不需要为它们提供XML配置项。
--@Inject:等价于默认的@Autowired,只是没有required属性;
10、@RequestParam、@PathVariable和@PathParam
--@RequestParam:是从request里面拿取值
--@PathVariable:@PathVariable 是从一个URI模板里面来填充
示例:
@RequestMapping("/hello/{id}")
public String getDetails(@PathVariable(value="id") String id,
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
.......
}
--@PathParam:这个注解是和spring的pathVariable是一样的,也是基于模板的,但是这个是jboss包下面的一个实现,
上面的是spring的一个实现,都要导包。
11、@ControllerAdvice和@ExceptionHandler(Exception.class)
--@ControllerAdvice
处理全局异常,包含@Component,可以扫面到,统一处理。
--@ExceptionHandler
用在方法上面表示遇到这个异常就执行以下方法。
12、@value
读取application.properties里面的配置,key,如:
@Value("${face_api_key}")
private String API_KEY;
13、@PropertySource 和@ImportResource
--@PropertySource:如果需要有自定义的属性文件需要加载,
可以使用该注解进行注入,并用@Value配合使用
--@ImportResource:
14、@Bean
用@Bean标注方法等价于XML中配置的bean
@Value(value = "#{message}") private String message
JPA注解:
15、@Entity和@Table
@Entity:@Table(name=”“):表明这是一个实体类。
一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略
16、@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”)
表示主键生成策略是sequence(可以为Auto、IDENTITY、native等,Auto表示可在多个数据库间切换),
指定sequence的名字是repair_seq。
17、@Basic(fetch=FetchType.LAZY)
标记可以指定实体属性的加载方式。
18、@OneToOne、@OneToMany、@ManyToOne
对应hibernate配置文件中的一对一,一对多,多对一。
19、@Id:表示该属性为主键。
20、@Column:如果字段名与列名相同,则可以省略。