spring框架



一、核心掌握的内容

1、spring IOC(控制反转,依赖注入)

2、spring AOP(面向方面(切面)编程)

3、spring对jdbc的支持

4、spring整合其他框架(struts2 hibernate)

5、spring MVC

二、Spring是什么

Spring是一个开源的控制反转(IOC)和面向切面(AOP)的容器框架,它的主要目地是简化企业开发 三、控制反

转

IOC(控制反转,依赖注入) 控制反转的核心:依赖对象的创建,不是自己负责,而是通过外部容器负责 这就是控制

的反转。这样可以做到解耦,使得使用者和创建者分离 (一个类要么使用对象,要么创建对象,不应兼而有之) 这个

外部容器可以是创建型模式(如工厂) spring本身就是强大工厂 依赖注入:把依赖关系通过配置文件+反射来解耦属性

的初始化。

四、使用spring好处

1、spring依赖注入控制反转好处:降低组建的耦合度,实现软件各层之间的解耦

2、可以使用容器(Controller) 事物处理 开发人员无需手工编写事物处理

3、容器提供单例模式支持(默认生成的对象都是单例的),开发人员不需要自己编写实现代码;

4、容器提供AOP技术

5、容器提供很多辅助类

6、spring对主流框架提供了集成支持,如集成hibernate,struts2等

五、轻量级框架与重量级框架概念划分

加载资源耗费内存的多少

六、实例化spring容器的方法

方法一、 在类路径下寻找加载配置文件,来实例化容器 ApplicationContext ctx= new

ClassPathXmlApplicationContext(“springDemo2/bean1.xml”); ApplicationContext ctx= new

ClassPathXmlApplicationContext( new String[]{“springDemo2/bean1.xml”,“springDemo2/bean2.xml”,……}

方法二、 在文件系统路径下寻找配置文件来实例化容器 ApplicationContext ctx= new

FileSystemXmlApplicationContext(new String[]{"/aa/bean1.xml","/bb/bean2.xml"})

方法三、 通过Resource装载,然后获得BeanFactory

方法四、 通过带@Configuration的配置

七、三种实例化bean的方式

1、使用类构造器实例化

 <bean id="personDao" class="springDemo2.PersonDao"></bean>

2、使用静态工厂方法实例化

<bean id="personDao" class="springDemo2.PersonDaoFactory" factory-method="createPersonDao">
</bean>
 public class PersonDaoFactory

{ public static PersonDao createPersonDao()

{ return new PersonDao(); } }

3、使用实例工厂方法

<bean id="personDaoFactory1" class="springDemo2.PersonDaoFactory1">
</bean>
<bean id="personDao" factory-bean="personDaoFactory1" factory-method="createPersonDao">
</bean>

八、指定Bean的初始化方法和销毁方法

在Person类 中需要写init() destroy()方法 public void init(){ System.out.println(“init方法调用”); } public void destroy(){

System.out.println(“销毁方法调用”); } <bean id=“person” class=“springDemo2.Person” init-method=“init” destroy-

method=“destroy”></bean>

九、集合类型的装配

set list Properties map xml文件头部添加 xmlns:p=“http://www.springframework.org/schema/p" 可以使用p:简便写法

<bean id="person" class="springDemo2.Person" p:id="111" p:name="张三" p:age="20" />

十、Bean的作用域

每个spring IOC容器中一个bean只有一个对象实例,默认情况下,会在容器启动时初始化bean, 我们可以指定Bean节

点的lazy init=“true"来延迟初始化bean,这时候,只有第一次获取bean才会初始化bean <bean id=“person”

class=“Person” lazy-init=“true” > 如果想对所有的bean应用延迟初始化,可以在根节点beans设置为default lazy

init=“true” <beans default-lazy-init=“true”> 每次从容器中获取的bean都是新的对象 scope=“prototype” 默认都是单例的

request session 依赖注入–自动装配依赖对象