一、 IoC(Inversion of control)
控制反转
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系
核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系
核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean
<bean id="ResponseDAO" class="com.li72.dao.ResponseDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
都是通过配置bean来实例化
通过配置注入
spring提供三种方法注入
1 Setter注入
在要注入的类中加set方法
在xml中配置
<bean id="exampleBean" class="examples.ExampleBean">
<property name="beanOne">
<ref bean="anotherExampleBean"/>
</property>
</bean>
2 构造方法注入constructor
<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg>
<ref bean="anotherExampleBean"/>
</constructor-arg>
<constructor-arg ref="yetAnotherBean"/>
<constructor-arg type="int" value="1"/>
</bean>
3 接口注入
配置@autowire自动装配
内部最核心的就是IOC
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置 文件来动态的创建对象,和调用对象里的方法的 。
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置 文件来动态的创建对象,和调用对象里的方法的 。
面向切面编程(AOP):它是OOP的补充,AOP应用了动态代理模式, OOP可以有效解决很多问题,但在有些问题的解决上,运用AOP会使工作更加聪明轻松。AOP使得程序更加模块化,行程多个"关注点",而同一程序的很多部分重复使用这些"关注点"。例子:系统日志和安全控制是很多程序典型的横切,横切的意思就是把程序横向展开,里面很多方法都会用到这些功能,而AOP是实现横切的有效工具。如果不用AOP,我们要有一个日志类,然后在每一个方法开始和结束时都要调用这个类的两个方法才能完成日志记录功能,而使用AOP之后,只需要声明日志类的相关方法应该在每个方法的开始和结束时调用就可以了。在Spring框架内部,AOP大量用于事务管理中,还有权限管理等。
Spring目的:就是让对象与对象之间的关系没有通过代码来关联,尽可能减少耦合,都是通过配置类说明 。