SpringBoot-注解
- @SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration,@EnableAutoConfiguration和@ComponentScan三个配置
- @ResponseBody:表示该方法的返回结果不解析为跳转路径,而是直接写入http responseBody中,直接返回json数据,用于构建Restful的api。一般配合@RequestMapping注解一起使用
- @Controller:用于定义控制器类,在spring项目中由控制器负责将用户发来的url请求转发到对应的服务接口,一般这个注解在类中,通常方法需要配合注解@RequestMapping
- @RestController:用于标注控制层组件,@ResponseBody和@Controller的合集,标注了他类中所有的控制器方法默认响应json数据。不需要额外加@ResponseBody注解
- @RequestMapping:提供路由信息,负责url到Controller中的具体函数的映射,可用于类上或者方法上
- params:指定request中必须包含某些参数值时,才让该方法处理
- headers:指定request中必须包含某些指定的header值时,才让该方法处理
- value:指定请求的实际地址,指定地址可以是URI Template模式
- method:指定请求的method类型,GET、POST、PUT、DELETE等
- consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
- produces:指定返回的内容类型,仅当request请求头中的Acccept类型中包含该指定类型才返回
- @RequestParam:用在方法的参数前面,用来获取请求参数,value属性指定参数名
- @RequestBody:将请求参数以json传输,序列化成对象
- @PathVariable:路径变量
- @EnableAutoConfiguration:SpringBoot自动配置(auto-configration),尝试根据你添加的jar依赖自动配置你的spring应用。
- 例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的exclud属性来禁用它们
- @ComponentScan:表示将该类自动发现扫描组件。相当于,如果扫描到@Component、@Controller、@Service等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowried注解注入。如果没有配置的话,springboot会扫描启动类所在包下以及子包下的使用了@Service、@Repository等注解的类
- @Configuration:相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类--可以使用@ImportResource注解加载xml配置文件
- @Import:用来导入其他配置类
- @ImportResource:用来加载xml配置文件
- @Autowried:自动导入以依赖的bean
- @Service:service层的组件注册为bean
- @Repository:使用@Repository注解可以确保dao或者repositories提供异常转译,这个注解修饰的dao或者repositories类会被ComponetScan发现并配置,同时也不需要为他们提供xml配置项
- @Bean:用@Bean标注方法等价于xml中配置的bean,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理
- @Value:注入springboot application.properties配置的属性的值
- @Inject:等价于默认的@Autowired,只是没有required属性
- @Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
- @Qualifier:当有多个同一类型的bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用。
- @Resource(name="name",type="type"):没有括号内容的话,默认根据bean的名字装配,找不到再根据类型匹配,再找不到报错
心里有束光,眼里有片海