在spring4之后,想要使用注解形式,必须得要引入aop的包
在配置文件当中,还得要引入一个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
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
我们之前都是使用 bean 的标签进行bean注入,但是实际开发中,我们一般都会使用注解!
配置扫描哪些包下的注解
<!--指定注解扫描包-->
<context:component-scan base-package="com.cong.pojo"/>
在指定包下编写类,使用注解@Value注入属性
@Component("user")// 相当于配置文件中 <bean id="user" class="当前注解的类"/>
public class User {
@Value("cong")// 相当于配置文件中 <property name="name" value="cong"/>
private String name;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
测试
@Test
public void test1(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("user");
System.out.println(user.toString());
}
扩展
@Value也可以作用在方法上
@Component后面的value可以不写,默认是类的小写
@Component
public class User {
private String name;
@Value("cong")
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
我们这些注解,就是替代了在配置文件当中配置步骤而已!更加的方便快捷!
@Component三个衍生注解
为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样。
写上这些注解,就相当于将这个类交给Spring管理装配了!
主要有4个注解,之前讲过了
@Autowired
自动按照类型注入
如果存在多个同类型的bean,会自动装配类名小写的bean
@Qualifier
不能单独使用,配合@Autowired,根据id装配对应的bean
@Resource
@Nullable
字段标记了这个,则可以为null值
@scope
@scope
@Component
@Scope("singleton")
public class User {
@Value("cong")
private String name;
@PostConstruct//指定初始化方法
public void init(){
System.out.println("对象初始化了...");
}
@PreDestroy//指定销毁方法
public void destroy(){
System.out.println("对象销毁了...");
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
再次运行,结果
对象初始化了...
User{name='cong'}
对象销毁了...
XML与注解比较
xml与注解整合开发 :推荐最佳实践
<context:annotation-config/>
作用:
原文:https://www.cnblogs.com/ccoonngg/p/12026757.html