`

spring总结

阅读更多
spring 开源的控制反转IOC和面向切面AOP的容器框架。
所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象
的创建及维护是由外部容器负责的。

这样控制权就是应用转移到了外部容器。控制权的转移就是所谓的反转。

所谓的依赖注入就是:
在运行期,由外部容器动态地将依赖对象注入到组件中。

处于同一个connection中的crud才属于同一个事务。
Connection conn =null;
conn.setAutoCommit(false);
Statement.executeUpdate(update account set amount=? where id=?);
Statement.executeUpdate(insert into log(type,date)values(?,?);
conn.commit();
conn.close();
sql语句Statement.executeUpdate(update account set amount=? where id=?);
与Statement.executeUpdate(insert into log(type,date)values(?,?);
处于同一事务中。

使用spring需要的jar包
http://www.springsource.org/download

需要的jar包:
dist\spring.jar
lib\jakarta-commons\commons-logging.jar

实例化spring容器
方法1:
在类路径下寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});
方法2:
在文件系统路径下寻找配置文件来实例化容器
ApplicationContext ctx = new FileSyatemXmlApplicationContext(new String[]{"beans.xml"});
spring的配置文件可以指定多个,可以通过string数组传入。

一般使用方法1.

<bean id="ss" name="ss"/>
在bean标签中id的名称是在xml中唯一的,并且不能够使用有些特殊字符如:‘/ss/ss’,
如果使用到了特殊字符的话,那么就应该用name属性如:name="/ss/ss"。
bean是由spring容器进行创建。


三种实例化Bean的方式
1.使用类构造器实例化
2.使用静态工厂方法实例化
3.使用实例工厂方法实例化

Bean的作用域
1.singleton
2.prototype

默认情况下(即:scope="singleton"),在容器实例化的时候就对Bean进行实例化。
当scope="prototype"时,Bean的实例化是在调用getBean()方法时进行的。
当scope="singleton"时,如果设置了 lazy-init="true"的话,那么该bean会延迟初始化,
当调用getBean()方法时才初始化该Bean。

如果要设置配置文件中所有bean都延迟初始化的话,
则应在beans标签中进行如此设置<beans default-lazy-init="true"/>

注意:不建议使用延迟初始化.

如果设置了init-method属性,则其指定的方法将在该bean的默认构造方法执行后,运行。
如果设置了destory-method属性,则其指定的方法将在spring容器关闭时执行。

依赖注入方式:
1.通属性注入(通过ref注入)。即:setter方法!
2.使用构造器注入。
3.使用Field注入(用于注解方式)
<bean id="personDAO" class="com.test.spring.dao.impl.PersonDAOImpl"></bean>
<bean id="PersonServerImpl" class="com.test.spring.serverimpl.PersonServerImpl">
<property name="personDao" ref="personDAO" />
</bean>
2.内部Bean
<bean id="PersonServerImpl" class="com.test.spring.serverimpl.PersonServerImpl">
<property name="personDao">
<bean class="com.test.spring.dao.impl.PersonDAOImpl"/>
</property>
</bean>

集合类型的装配


在web容器中实例化spring容器的方法:
1.指定spring的配置文件,默认从web根目录寻找配置文件,
我们可以通过spring提供的classpath:前缀指定从类路径下寻找
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!--对spring容器进行实例化-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
web容器中配置struts
<servlet>
<servlet-name>struts</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>struts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

要使用依赖注入功能,就必须把bean交给spring管理(即:在spring-config.xml中配置相应的bean)。
如果action没有交给spring管理时,我们通过下面的语句获取
spring容器中的实例:
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this
                .getServlet().getServletContext());
        personService = (PersonService) ctx.getBean("personServiceImpl");

把action交给spring管理后,我们可以通过使用依赖注入在action
中注入业务层的bean,确保action的path属性值与bean的名称相同。
<action path="/person/list".../>
spring配置
<bean name="/person/list" class="cn.itcast.web.action.PersonAction"/>

在struts配置文件中添加进spring的请求控制器,该请求控制器会先根据action的path属性值到spring容器中寻找跟该属性值同名的bean。如果寻找到即使用该bean处理用户请求,如果没有找到则使用struts配置文件中的<action/>标签中的type指定的类实例化一个对象来处理请求。
<!-- 把struts的action交给srping管理 -->
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
org.springframework.web.struts.DelegatingRequestProcessor类所在的包是:spring-webmvc-struts.jar







  • 大小: 19.5 KB
  • 大小: 19.5 KB
  • 大小: 21.3 KB
  • 大小: 21.3 KB
  • 大小: 27.5 KB
  • 大小: 27.5 KB
  • 大小: 9.9 KB
  • 大小: 9.9 KB
  • 大小: 38.6 KB
  • 大小: 38.6 KB
  • 大小: 32.7 KB
  • 大小: 32.7 KB
  • 大小: 26.7 KB
  • 大小: 26.7 KB
  • 大小: 17.5 KB
  • 大小: 17.5 KB
  • 大小: 20.5 KB
  • 大小: 20.5 KB
分享到:
评论

相关推荐

    Spring总结和复习

    Spring总结

    Spring总结.xmind

    包含Spring简介,AOP,SpringMVC,集成JDBC,事务,ORM框架,Spring集成知识点总结,以思维导图的形式展示,xmind文件。

    Spring总结(四)

    Spring个人总结,基于Annotation注解的方式开发,配置

    spring总结1可以查看

    spring总结1可以查看

    Spring总结

    三大框架里的spring总结,希望对各位有用。

    spring 总结md文档

    spring入门笔记

    【狂神说】spring 总结源码 下载

    在这个“狂神说”系列的Spring源码总结中,我们可以深入理解Spring的核心概念和实现机制。 1. **依赖注入(DI)与控制反转(IoC)**:Spring的核心特性是依赖注入,它通过反转应用程序对对象的控制权,使得对象的创建和...

    达内培训内部资料--spring总结精华版

    【总结】 Spring 框架是一个全方位的解决方案,它不仅提供了一种管理对象生命周期和依赖关系的有效方式,还简化了事务处理、持久层操作和Web应用的开发。通过使用Spring,开发者可以构建出更加模块化、易于测试和...

    Spring总结——田超凡.docx

    【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 开发的开源框架,由 Rod Johnson 创建,旨在简化 Java EE 应用的复杂性。它以轻量级、低侵入式的设计理念,提供了全面的解决方案,涵盖从表现层到业务逻辑...

    spring总结.xmind 思维导图

    Spring5思维导图

    Spring总结——Spring容器、Spring中的IoC

    文章目录Spring总结Spring容器控制反转(IoC)基于XML的IoC Spring总结 Spring容器 什么是Spring容器 从概念上讲:Spring 容器是 Spring框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们...

    ssm之spring总结和整理 java框架

    spring方面介绍 常用注解 生命周期 AOP DI

    spring总结笔记

    ### Spring框架概述与基本配置 #### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson创建并由Pivotal Software提供支持。Spring提供了全面的基础架构支持,使得开发者能够专注于应用...

    Spring思维导图

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心特性,极大地简化了企业级应用的开发。这份"Spring思维...

Global site tag (gtag.js) - Google Analytics