使用注解配置spring
导包
(4+2+spring-aop)
在新版本中需要srping-aop包,注解才能够使用为主配置文件引入context命名空间(约束)
xmlns:context="http://www.springframework.org/schema/context"
开启使用注解代理配置文件
<!-- 指定扫描org.spring包下的所有类中的注解 注意:会扫描org.spring包下的所有子孙包和文件--> <context:component-scan base-package="org.spring"></context:component-scan>
在类中使用注解完成配置
例:
import org.springframework.stereotype.Component; //<bean name="user" class="org.spring.domain.User"></bean> @Component("user") public class User { }
将对象注册到容器
@Component @Service //service层 @Controller //web层 @Repository //dao层 说明:这4个注解的作用完全相同 名称不同用于区别每一层的对象
修改对象的作用范围
@Scope(scopeName="protorype")
值类型注入
@Value("Tom") @Value("Tom") private String name; //通过反射的Field赋值,比较直观,但是破坏了封装性 或 @Value("Tom") public void setName(String name) { this.name = name; } //通过set方法赋值,推荐使用
引用类型注入
(1)
@Autowired //自动装配 private Car car; 需要: @Component public class Car{ } //问题:如果匹配多个类型一致的对象,将无法选择具体注入哪一个对象, so:
(2)
@Autowired @Qualifier("car2") private Car car;
(3)
@Resource(name="car2") //手动注入,指定注入那个名称的注入 private Car car;
初始化|销毁方法
@PostConstruct //在对象创建后调用 init-method public void init(){ System.out.println("初始化方法"); } @PreDestroy //在销毁之前调用 destroy-method public void destory(){ System.out.println("销毁方法"); }
spring插件
安装springsource-tool-suite(sts)插件
使用spring安装好插件的Eclipse
spring与juint测试整合
- 目的:为了简化测试
导包
(4+2)+ srping-aop + spring-test
使用:
//帮我们创建容器 @RunWith(SpringJUnit4ClassRunner.class) //指定创建容器时使用哪个配置文件 @ContextConfiguration("classpath:applicationContext.xml") public class TestUser { //将名为user的对象注入到变量u中 @Resource(name="user") private User u; @Test public void Test(){ System.out.println(u); } }