spring框架
spring是一个实现MVC思想的框架
sping对bean管理的形式默认是以单例的模式。
特点:Ioc 控制反转 控制权转移,把实例化控制权转移给spring容器
AOP:面向切面编程,合理的层次划分,当你触发一件事的时候,他会触发另一件事,类似于listener,自动事务处理可以用
DI:依赖注入 bean的依赖注入,基本数据类型和复合类型依赖注入
1.dao注入给service
2.把service注入给handler
3.取表单元素(复合依赖注入:bean里面属性的名字和表单元素名字一致)
为什么要使用spring:降低各组件之间的耦合度,实现软件各层之间的解耦
default-lazy-init="true":正常在获取beans.xml的时候,就调用所有构造器,写这个,只有getbean,实例化的时候才调用,延迟加载。
<bean id="MessageService" class="com.neusoft.service.impl.MessageServiceBean" init-method="init" destroy-method="destory">
可以配置init,destory方法,在类里面写这个方法,在getbean,也就是实例化这个类的时候,调用init方法,在关闭服务的时候,调用destory方法。
三种实例化bean的方法
1.使用类构造器实例化
<bean id="MessageService" class="com.neusoft.service.impl.MessageServiceBean" init-method="init" destroy-method="destory">
2.使用静态工厂方法实例化
<bean id="BenzCar" class="com.neusoft.factory.CarFactory" factory-method="getBenzCar"></bean>
3.使用实例工厂方法实例化:
<bean id="CarFactory2" class="com.neusoft.factory.CarFactory2"></bean>
<bean id="BmwzCar" factory-bean="CarFactory2" factory-method="getBmwCar"></bean>
servicebaen与daobean的解耦,依赖注入,将dao层注入service层
<bean id="MessageDao" class="com.neusoft.dao.impl.MessageDaoBean"></bean>
<bean id="MessageService" class="com.neusoft.service.impl.MessageServiceBean" init-method="init" destroy-method="destory">
<property name="messagedao" ref="MessageDao"></property></bean>
//name="messagedao" 名称合servicebean 的属性名称一样,并且还要有get,set方法
// ref="MessageDao" 和dao类的beanid一样
工厂方法
也是如何来更合理的获取一个对象,想获取对象,必须通过工厂获取。
分为普通工厂方法和静态工厂方法。
注意事项:一个接口只能有一个实现类
动态代理
通过注解来实例化对象,运用的是类反射技术,通过一个字符串来反向生成一个对象,来实现特定的操作。
spring跟springMVC是一个框架
spring是实现mvc思想的框架,它分为两部分,spring和springMVC,spring的特点是Ioc,Aop,DI,作用是为了解耦,默认对bean的管理形式是单例的形式