Spring学习02

1.使用注解配置Spring

1.1 为主配置文件引入新的命名空间(约束)

添加约束文件xxx-xxx-context.xml

2018.12.22 Spring学习02-LMLPHP

添加到主配置文件中

2018.12.22 Spring学习02-LMLPHP

选择刚才的context.xml文档

2018.12.22 Spring学习02-LMLPHP

记住:一个xml文档只能有一个命名空间(昨天的命名空间是空的) 只需要写最后一个单词作为命名空间就可以了

2018.12.22 Spring学习02-LMLPHP

1.2 开启使用注解代理配置文件

2018.12.22 Spring学习02-LMLPHP

1.3 在类中使用注解完成配置

2018.12.22 Spring学习02-LMLPHP

1.4 编写测试类进行Junit测试

2018.12.22 Spring学习02-LMLPHP

2018.12.22 Spring学习02-LMLPHP

解决办法

2018.12.22 Spring学习02-LMLPHP

重新运行

2018.12.22 Spring学习02-LMLPHP

1.5 将对象注册到容器中

2018.12.22 Spring学习02-LMLPHP

1.6 如何指定对象的作用范围 (scope注解)

2018.12.22 Spring学习02-LMLPHP

默认值属性singleton

2018.12.22 Spring学习02-LMLPHP

1.7 给对象赋值 (Value注解注入)

1.7.1 值类型注入

1.在成员变量上面添加Value

2018.12.22 Spring学习02-LMLPHP

2.在set方法上面添加Value(推荐使用)

2018.12.22 Spring学习02-LMLPHP

1.7.2 引用对象类型注入

在Car对象上注入注解 Component,并且添加Value赋值

2018.12.22 Spring学习02-LMLPHP

第一种注入方式。@Autowired

2018.12.22 Spring学习02-LMLPHP

在配置文件中添加第二辆车

2018.12.22 Spring学习02-LMLPHP

测试第一种方式发现无法输出第二辆车的信息输出

2018.12.22 Spring学习02-LMLPHP

第二种注入方式。@Autowired @Qualifier("car2") 需要两个一起结合使用

2018.12.22 Spring学习02-LMLPHP

第三种注入方式。@Resource(name="car2")

2018.12.22 Spring学习02-LMLPHP

1.7.3 指定注入初始化/销毁方法

2018.12.22 Spring学习02-LMLPHP

@PostConstruct //在对象创建后调用 init-method

@PreDestroy //在对象销毁之前调用 destroy-method

测试

2018.12.22 Spring学习02-LMLPHP

修改后二次测试

2018.12.22 Spring学习02-LMLPHP

2.STS插件安装

查看详细的教程

https://www.cnblogs.com/qichunlin/p/10159524.html

3. spring与junit整合测试

3.1 导包 4+2+aop+test

2018.12.22 Spring学习02-LMLPHP

在测试类中添加注释 @RunWith(SpringJUnit4ClassRunner.class)

2018.12.22 Spring学习02-LMLPHP

2018.12.22 Spring学习02-LMLPHP

在添加一个注释 @ContextConfiguration("classpath:applicationContext.xml")

2018.12.22 Spring学习02-LMLPHP

测试

2018.12.22 Spring学习02-LMLPHP

3.spring中的AOP

3.1思想 介绍

第一次---拦截器(乱码处理)

2018.12.22 Spring学习02-LMLPHP

第二次---事务管理(通过动态代理方式解决)

2018.12.22 Spring学习02-LMLPHP

第三次---Action中参数赋值校验是否登陆

2018.12.22 Spring学习02-LMLPHP

3.2 spring中的aop概念

3.3 spring实现aop的原理

3.3.1 动态代理(有接口,优先使用)

被代理对象必须要实现接口,才能产生代理对象。如果没有接口将不能使用动态代理

2018.12.22 Spring学习02-LMLPHP

2018.12.22 Spring学习02-LMLPHP

2018.12.22 Spring学习02-LMLPHP

测试

2018.12.22 Spring学习02-LMLPHP

3.3.2 cglib代理(没有接口)

第三方代理技术,cglib代理可以对任何类生成代理,代理的原理是对目标对象进行继承代理。如果目标对象呗final修饰,那么该类无法被cglib代理

2018.12.22 Spring学习02-LMLPHP

测试

2018.12.22 Spring学习02-LMLPHP

05-11 13:20