您的位置:首页 > 编程语言 > Java开发

Spring框架所有技术笔记总结

2015-12-24 10:27 316 查看
什么是Spring,Spring有什么功能?

Spring是一个控制反转和面向切面编程的容器框架,可以简化企业开发:

Spring框架提供了许许多多有用的功能,就我们常用的如下:

1 控制反转和依赖注入

  所谓控制反转,就是对象的创建以及维护是由外部容器实现的,以前我们在类中要使用其

他类的方法,需要在我们本类中new其对象;

而采用控制反转时,这个对象的创建工作和维护就交给了Spring容器;有利于各层之间的解耦;

面向对象的第一大原则是:面向接口编程;

就是面向接口编程原则的体现;比如说我们在某个类中要使用其他类的对象来为自己服务;

从前我们都是在我们自己的类中创建我们要使用的类的对象;而现在我们只要在自己的类中定义

该类的接口对象的引用,并提供set,get方法(主要是set方法);然后放心大胆的去用;创建工作

交给Spring容器;我们只要自己使用就行了

但是在Spring配置文件中进行属性的配置即可;

要在我们自己的类的配置项中加入这样一项内容;

这底层的原理是使用dom4j技术对xml配置文件进行解析,解析出相应的属性,如果需要注入属性的

,就利用反射机制调用其set方法,对属性进行注值;

关键步骤:

1 创建引用,并提供set,get方法;

2 在配置文件中注入该属性及其对应的实现类;

3 在本类中使用;

其实向某个类中注入某个属性有两种方法:

其一是上面讲的配置ref选项;

其二是配置内部bean选项;但是这个bean只能供内部使用;外部无法访问;

 

注入int等基本数据类型及String类型的配置是这样的;

对属性的注入有两种方法,一种是自动的,一种是手动的!

手动的方式包括:

1:配置beans.xml文件;配置bean和property属性;还有一种就是使用构造器来注入,用的不是很

多!

2:通过在成员或方法上手动加入注解来实现依赖注入;有两种方式一中是@Resource,他是JavaEE自

带的注解;

采用名称和类型识别相结合,即先按名称查找,没找到则按类型查找;

另一种是Spring提供的@Authorwired;他是按类型来查找的;当然也可以通过添加属性配置实现按名

称查找;

但是不管是哪一种方式其底层原理都是用的反射技术来实现的;

使用注解方式的注意事项:

1 必须要导入相关的注解包;

2 配置文件中要引入相应的schema约束文件;并打开context配置项;

3 可以在相应属性上配置,也可以在set方法上配置;即在其权限修饰符前加@Resource

或者@Autowired;表示对其使用注解方式注入值;

一般来说@Resource是javaEE自带的,而@Authorwired是Spring自带的;由于我们使用的是Spring

来实现属性注入,因此最好使用@Autowired方式实现;

通过在classpath自动扫描方式把组件纳入spring容器中管理,需要有属性的set方法!!!

使用注解来实现将我们需要被Spring容器管理的bean交给Spring容器;

@Service用于标注业务层组件,@Controller用于标注控制层组件(如struts中的action);

@Repository用于标注数据库访问组件,即DAO组件,

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Scope("prototype");指定bean对象产生的方式,是单例还是其他!

@PostConstrut在某个方法上标注,表示将该方法指定为初始化方法!

同理@PreDestroy标注为摧毁方法!!!

依赖注入有两种方式:

1 使用注解技术:通过@Autowired或者!@Resource();

2 使用xml配置文件实现,通过property配置项和ref实现;但是需要需要注入的类提供该

属性的set方法;否则会出现空指针异常!!!

2 aop编程

   
面向切面编程(aspect oriented programming);

使用代理类Proxy可以实现;该类有个静态方法 public static Object newProxyInstance

(ClassLoader loader,

                     
Class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: