SpringBoot常用注解

注解@SpringBootApplication此注解是Spring Boot项目的基石 , 创建SpringBoot项目的Application时会默认加上
@SpringBootApplicationpublic class SpringSecurityApplication{public static void main(Strings[] args){SpringApplication.run(SpringSecurityApplication,args);}}我们可以把@SpringBootApplication 看作@Configuration , @EnableAutoConfiguration , @ComponentScan 注解的集合
其中 @EnableAutoConfiguration:启用SpringBoot的自动配置机制@ComponentScan:扫描被@Component /@Service/@Controller注解的bean , 注解默认会扫描该类所在的包下所有类@Configuration:允许在Spring上下文中注册额外的bean或导入其他配置类
Spring Bean相关@BeanBean对象注册Spring IOC容器与使用bean对象是整个Spring框架的重点,其中@Bean就是一个将方法作为Spring Bean对象注册的一种方式 ,
package com.edu.fruit;//定义一个接口public interface Fruit{//没有方法} /**定义两个子类*/package com.edu.fruit;@Configurationpublic class Apple implements Fruit{//将Apple类约束为Integer类型}package com.edu.fruit;@Configurationpublic class GinSeng implements Fruit{//将GinSeng 类约束为String类型}/**业务逻辑类*/package com.edu.service;@Configurationpublic class FruitService {@Autowiredprivate Apple apple;@Autowiredprivate GinSeng ginseng;//定义一个产生Bean的方法@Bean(name="getApple")public Fruit getApple(){System.out.println(apple.getClass().getName().hashCode);System.out.println(ginseng.getClass().getName().hashCode);return new Apple();}}/**测试类*/@RunWith(BlockJUnit4ClassRunner.class)public class Config {public Config(){super("classpath:spring-fruit.xml");}@Testpublic void test(){super.getBean("getApple");//这个Bean从哪来 ,从上面的@Bean下面的方法中返回的是一个Apple类实例对象}}@Autowired@Autowired自动注入注解 , 最常用的一种注解将对象自动导入到类中 , 注解自动装配bean的类
@Component家族@Component:通用注解 , 当不知道Bean在哪一层时 , 可以使用@Component注解标注 。 @Repository: 对应持久层—Dao层的注解 , 用于操作数据库相关@Service: 对应服务层的注解 , 用来连接Dao层做逻辑处理@Controller:对应Spring MVC控制层 , 主要接收用户请求并调用service返回给前端页面
@RestController@RestController注解是@Controller注解和@ResponseBody注解的合集 , 用来返回Json格式给页面(带Rest格式的就是返回的Json文本)
用@RestController注解实现前后端分离 , 如果是使用@Controller则项目还是太老了 , 返回的视图格式 , 在传统的SpringMVC中使用
@Scope声明Spring Bean的作用域
@Scope("singleton")public Person personSingleton(){return new Person();}Spring Bean的四种作用域:singleton,prototype,request,session
@Configuration一般声明配置类 , 使用@Component或者@Configuration
@Configurantionpublic class AppConfig{@Beanpublic TransferService transferService(){return new TransferServiceImpl();}}处理常见HTTP请求类型@RequsetMapping@RequsetMapping是处理HTTP请求的最通用注解
@RequestMapping("/users")public ResponseEntity> getAllUsers(){return userRepository.findAll();}@GetMapping@GetMapping 就等价于@RequestMapping(value="http://kandian.youth.cn/users",method =RequsetMethod.GET)即使用@GetMapping就相当用接收GET方法了