注解
使用Spring框架指定注解(例如@Component)对类进行描述表示此类是一个要交给Spring容器管理的对象.
@SpringBootApplication
Spring Boot项目中由@SpringBootApplication注解描述的类为系统启动类
这个类在启动时会自动:
- 1.扫描本类所在包以及子包中的类,并查找由spring容器管理的对象(@Controller,@Service)
- 2.进行资源的默认初始化配置(自动配置) 具备配置会参考spring.factories
@Component(描述一般组件对象)
把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
@Controller(描述控制层对象)
用于标注控制层组件,注入服务
@Service(描述业务层对象)
@Repository(描述数据层对象)
@Configuration(描述配置对象)
@Scope
@Scope默认是单例模式,即scope="singleton"。
另外scope还有prototype、request、session、global session作用域。
- singleton单例模式,全局有且仅有一个实例
- prototype原型模式,每次获取Bean的时候会有一个新的实例
- request表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效
- session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
@Lazy
@Lazy注解对@Scope(prototype)不起作用,只当@Scope(singleton)时才有用
默认为true,作用是延迟加载:
- 为false时是当类创建时就加载,
- 为true时是当类使用时才加载
@RequestMapping
@RequestMapping注解定义返回类型为view
@ResponseBody
@ResponseBody注解定义返回类型为字符串
一般是使用在单独的方法上的,需要哪个方法返回json数据格式,就在哪个方法上使用,具有针对性
一般用来返回ajax请求的result数据
@Mapper
@Mapper是由MyBatis框架中定义的一个描述Mapper接口的的注解,用于告诉Spring框架此接口由底层(mybatis)创建其实现类对象,并存储到spring容器.
@Autowired
- 1.可以描述属性或方法
- 2.用于告诉spring此属性的值由容器进行注入
- 3.默认spring容器会依据注解修饰的属性类型从容器查找对象的对象
- 4.假如匹配类型的对象在容器中找到一个就直接注入
- 5.假如匹配类型的对象在容器中找到多个,则检测这些对象的bean名字是否与属性名相同,有则直接注入
@Qualifier
@Qualifier注解必须配合@Autowired,用于指定注入的是接口的哪个实现类