1.导入bean
首先,Spring xml配置文件,扫描指定包下面的注解,使注解生效:
<context:component-scan base-package="top.imustctf.pojo"/> <!-- 导入注解的支持 --> <context:annotation-config/>
在对应包下面建实体类,加入@Component
注解,可以自动导入bean
@Component public class Xiaoqian { public String name = "小钱"; }
现在来测试一下效果吧:
@Test public void test() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Xiaoqian xiaoqian = context.getBean("xiaoqian", Xiaoqian.class); System.out.println(xiaoqian.name); // 小钱 }
导入bean的同时注入属性:
要想导入bean的同时注入属性,在set方法或者属性上加入@Value注解即可:
@Component public class Xiaoqian { public String name; public String getName() { return name; } @Value("小钱") public void setName(String name) { this.name = name; } }
2.衍生注解
@Component
有几个衍生注解,可以自动导入bean,不过分层的注解会使代码整体逻辑更加清晰
提供MVC三层架构的直接扫描方法注解,具体如下:
service层:
@Service public class UserService { }
dao层:
@Repository public class UserDao { }
controller层:
@Controller public class UserController { }
3.作用域,设计模式注解
如果想要对某个类指定特定的设计模式,可以直接使用Spring@Scope注解实现,例如,我们想要指定该类实现一个单例模式:
@Component @Scope("singleton") public class Xiaoqian { public String name; public String getName() { return name; } @Value("小钱") public void setName(String name) { this.name = name; } }
4.XML - JAVA的完全转化
通过Spring的注解驱动类,我们可以完全的不使用XML文件进行Spring项目开发
以下是一个实例:
先定义一个熟悉的pojo类:(使用注解将此pojo类注册到Spring容器中)
@Component @Scope("singleton") public class Xiaoqian { public String name; public String getName() { return name; } @Value("小钱") public void setName(String name) { this.name = name; } }
开发注解驱动类:(使用@Configuration注解标注)
待托管的类使用@Bean标注,这个方法的名字相当于原来bean标签中的ID,方法的返回值相当于class
@Configuration public class DaheConfig { @Bean public Xiaoqian getXiaoqian() { return new Xiaoqian(); } }
现在来愉快的进行测试吧:
@Test public void test() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DaheConfig.class); Xiaoqian getXiaoqian = (Xiaoqian) context.getBean("getXiaoqian"); System.out.println(getXiaoqian.getName()); // 小钱 }