Spring框架入门(二)

                                      第一章 使用注解配置Spring

1.1 步骤

1.1.1 为主配置文件引入新的命名空间

导入命名空间,改变key-type,并在key最后加上/,将复制到key的最后,即可添加约束。

然后添加新的命名空间:

打开XML文件,然后编辑命名空间,点击Add,在location hint中选择自己刚刚导入的约束,并将其除去最后一段文字后复制到Namespace Name中,因为之前的约束我们没有添加标签,而一个XML只能有一个默认命名空间,所以这个我们要添加标签,一般的习惯是将Namespace中的最后一个单词复制过去当作标签。

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

不仅只扫描包,还扫描包的子孙包。

Spring4.0的新特性,我们需要再导入一个新的包

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

制定完配置扫描后便可进行注解的书写,

可以用括号来指定Bean的名字

扫描二维码关注公众号,回复: 3438602 查看本文章

后来又出现了几个注解,

推荐能够使用分层的注解

可以使用Scope注解来规定单例还是多例,单例是singleton(默认值),多例是prototype。

使用@value来进行注入,可以把注解放到成员变量上,也可以把注解放到set方法上。

区别:加在成员变量上是直接对filed(与反射相关)的字段进行赋值,放在setName上的是通过set方法赋值。第一种赋值方式破坏了封装性,推荐使用第二种。但是因为第一种看着舒服,很多人都用第一种。

补:如果只给value属性赋值,且属性只有一个,那么可以省略不写。

引用类型注入:

首先要把对象类型注册,再将Car对象的属性赋值,接下来有几种方式:

1.在容器中寻找Car,找到后自动装配,方便,但是如果有多个类型会出现问题,比如容器中有三辆车,如何做到呢,除了自动扫描,我们还可以用原始的方法来向容器中装入car,我们无法选择是用哪一个对象。

2.针对上面的我们可以使用辅助注解解决,和自动注解配套使用

3.(推荐)可以通过@resource注解来直接指定,直接输入需要注入对象的名字

开始与销毁的方法(要使用singleton,不是singleton的话创建完对方就不管了):

                                     

                                        第二章 STS插件的安装

2.1 手动安装插件

 

2.2 使用老师的Eclipse

2.3 Spring装好插件的Eclipse

                                    第三章 Spring与junit整合测试

每次测试时都要把applicationContext重写一遍,且路径换了的话要改的也太多,于是Spring整合了Junit的测试,首先我们需要导包,  ,将包导入,进行如下书写即可。

书写后的使用:

                                        第四章 Spring中的aop

4.1 aop思想

横向重复,纵向抽取。

4.2 Spring中的AOP概念

指挥Spring帮我生成代理对象,而不是像以前一样自己写。

4.3 Spring实现aop的原理

动态代理和cglib代理都可以实现,但是如果代理对象有接口则优先使用动态代理,没有接口则使用cglib代理。

4.3.1 动态代理

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

记住:动态代理针对的是接口,代理对象实现了被代理对象的接口。

4.3.2 cglib代理

第三方代理技术,cglib代理,可以对任何类生成代理,代理的原理是对目标对象进行继承代理。

比方说我给userService生成代理对象,那么生成的是它的子类。

若目标对象被final修饰,那么该类无法被cglib代理。

记住:cglib代理是代理对象继承了被代理对象

4.3.3 手动实现动态代理与cglib代理

userservice接口:

UserService:

每个方法都要进行事务的开启比较麻烦,我们用动态代理和cglib代理进行简化。

动态代理:

demo测试:

4.4 spring中的名词学习

4.5 spring中的aop演示

1 导包

spring的aop包

spring需要的第三方aop包

2 准备目标对象

3 准备通知

4 配置进行织入

猜你喜欢

转载自blog.csdn.net/q610376681/article/details/81281567
今日推荐