本文主要是介绍Spring两大核心思想IOC,AOP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Spring框架
Spring框架是个轻量级的java EE框架。所谓轻量级,是指不依赖于容器就能运行。Spring以IOC,AOP为主要思想,能够协同Struts,Hibernate,WebWork,JSF,iBatis等众多框架
Spring解决的主要问题
1 Spring的IOC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。提升了代码的灵活性,可维护性高
2 Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。
3 Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。
4 Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
IOC
IOC概念
Spring最重要思想之一IOC(Inversion of Control控制反转),或者称为DI(Dependency Injection,依赖注入)。就是将我们需要的对象实例化之后交给Spring来统一管理,哪些地方需要就对哪里依赖注入
IOC的优势
实现组件之间的解耦,就是降低了类与类之间的耦合度。提高程序的灵活性和可维护性
IOC实例化的方式
1 无参构造方法
这种方式需要系统默认的无参构造,声明的对象也要有setter方法
<!-- 在xml中 无参构造方法-->
<bean id="userdao" class="com.woniuxy.dao.Userdao"></bean>
<bean id="userservice" class="com.woniuxy.service.Userservice">
<!-- 在下面进行依赖的注入-->
<property name="userdao" ref="userdao"></property>
</bean>
<bean id="controller" class="com.woniuxy.controller.Controller">
<property name="userservice" ref="userservice"/>
</bean>
2 静态工厂方法
这种方法必须类中的方法为静态方法,我们通过调用这个方法,返回的实例化就可以直接赋给id,不是clas的实例,而是方法返回的实例
<!--在xml中 静态工厂方法创建-->
<bean id="userFactory" factory-method="getM" class="com.woniuxy.controller.FactorMathod" ></bean>
1
2
3 实例工厂方法
这种方法需要先有一个bean的实例,然后通过调用这个bean的方法返回一个新的实例,来作为这个bean的实例
<!--在xml中 工厂bean实例化-->
<bean id="factoryMethod" class="com.woniuxy.controller.FactorMathod"></bean>
<bean id="getuser" factory-bean="factoryMethod" factory-method="getU"></bean>
4 实现FactoryBean接口方法
需要先实现FactoryBean接口,然后重写方法,在object方法中返回对象,来作为这个bean的实例
java代码
public class TestInterface implements FactoryBean<Userdao> {
@Override
public Userdao getObject() throws Exception {
return new Userdao();
}
@Override
public Class<?> getObjectType() {
return Userdao.class;
}
@Override
public boolean isSingleton() {
return false;
}
}
下面是xml
<!--在xml中 Spring的FactoryBean接口实例化-->
<bean id="getInterface" class="com.woniuxy.controller.TestInterface"></bean>
IOC的依赖注入方式
1 构造方法的方式注入
<bean id="car" class="cn.itcast.spring.demo4.Car">
<constructor-arg name="name" value="保时捷"/>
<constructor-arg name="price" value="1000000"/>
<bean>
2 set 方法的方式注入
<bean id="car2" class="cn.itcast.spring.demo4.Car2">
<property name="name" value="奇瑞 QQ"/>
<property name="price" value="40000"/>
<bean>
Bean的生命周期
(1)、xml中指定初始化(init-method)和销毁(destory-method)的方法
<bean id="person" class="domain.Person" init-method="" destroy-method="">
1
(2)、实现initiializingBean接口,初始化。实现disposableBean接口,销毁
Bean的作用域
默认情况下,bean的作用域是单例的(si
这篇关于Spring两大核心思想IOC,AOP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!