Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。
Spring注解方式减少了配置文件内容,更加便于管理,并且使用注解可以大大提高了开发效率!
下面按照分类讲解Spring中常用的一些注解。同时也是面试考查时的重点知识!
@Component
1.使用注解需要导入context约束,增加注解的支持!
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
</beans>
2.bean
1.注解
@Component
2.相当于xml
<beanid="user"class="nuc.ss.pojo.User"/>
3.属性如何注入@Value(“xxx”)
1.注解
@Componentpublic class User { @Value("青秧") public String name;}
2.相当于xml
<beanid="user"class="nuc.ss.pojo.User"/> <propertyname="name"value="青秧"/></bean>
4.衍生的注解
@Component有几个衍生的注解,我们在web开发中,会按照mvc三层架构分层!
dao【@Repository】
service 【@Service】
controller 【@Controller】
这四个注解功能都是一样的,都是代表将某个注册类注入到Spring中,装配Bean
5.自动装配置
@Autowired:自动装配通过类型、名字
如果Autowired不能唯一自动装配上属性,则需要通过@Qualifilter(value=“xxx”)
@Nullable:字段标记了这个注解,说明这个字段可以为null
@Resource:自动装配通过名字、类型
6.作用域 @Scope
1.注解
@Component
@Scope("singleton")
public class User {
public String name;
@Value("狂神")
public void setName(String name) {
this.name = name;
}
}
2.相当于xml
<beanid="user"class="nuc.ss.pojo.User"scope="singleton"/> <propertyname="name"value="青秧"/></bean>
3.小结
xml与注解
xml更加万能,适用于任何场合!维护简单方便
注解不是自己的类用不了,维护相对复杂
xml与注解的最佳实践:
xml用来管理bean;
注解只负责完成属性的注入;
我们在使用的过程中,只需要注意一个问题:必须让注解生效,就需要开启注解支持
<!--指定要扫描的包,这个包下面的注解就会生效-->
<context:component-scanbase-package="nuc.ss"/>
<context:annotation-config/>
注意:@Component有几个衍生的注解,我们在web开发中,会按照mvc三层架构分层!
dao【@Repository】
service 【@Service】
controller 【@Controller】
这四个注解功能都是一样的,都是代表将某个注册类注入到Spring中,装配Bean