使用注解配置Spring
Spring是web开发中必不可少的框架,在前期学习中一直使用 xml进行配置,现在可以尝试使用注解来配置Spring。
javaConfig是Spring的一个子项目,在Spring4之后,它成为了一个核心功能。
1.注解的使用
-
@Autowired:用来自动装配,通过类型。
如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value=“xxx”) -
@Resource:用来自动装配,首先通过名字,如果找不到名字则通过类型
-
@Component:组件,放在类上,说明类已经被Spring管理了
在web开发中,会按照mvc三层架构分层
dao @Repository
service @Service
controller @Controller -
@Value:用于属性注入
-
@@Configuration:配置类注解,也会被spirng托管放入容器中
-
@ComponentScan(“com.lysong.*”):扫描包,相当于context:component
-
@Import(AppConfig2.class):导入其他的配置文件
2.模拟的环境搭建
一个用户有一条狗
2.1.实体类
User类
@Component
public class User {
@Autowired
private Dog dog;
private String name;
@Override
public String toString() {
return "User{" +
"dog=" + dog.toString() +
", name='" + name + '\'' +
'}';
}
public String getName() {
return name;
}
@Value("李一松哦")
public void setName(String name) {
this.name = name;
}
}
Dog类
@Component
public class Dog {
private String name;
@Value("Tom")
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
'}';
}
}
2.2.配置类
//这个也会被托管,注册到容器中,这个注解本身也是一个@Component
//@Configuration代表这是一个配置类,相当于appliacationContext.xml
@Configuration
//扫描包
@ComponentScan("com.lysong.*")
@Import(AppConfig2.class) //用来验证import注解的使用,无意义
public class AppConfig {
//注册一个bean,就相当于之前写的一个<bean>
//这个方法的名字就相当于bean标签中的id属性
//这个方法的返回值,就相当于bean标签中的class属性
@Bean
public User user(){
return new User();
}
@Bean
public Dog dog(){
return new Dog();
}
}
2.3.测试类
public class MyTest {
@Test
public void test1(){
//如果完全使用了配置类方式去做,我们只能通过AnnotationConfigApplicationContext上下文,来获取context容器
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
User user = applicationContext.getBean("user", User.class);
System.out.println(user.toString());
}
}
3.运行结果
说明,使用注解配置Spring成功