- 浏览: 612382 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
niuqiang2008:
谢了谢了 就是要找这个问题
struts2的<s:set><s:if>标签应用 -
love_zongming:
赞一个! 谢谢分享
向eclipse中添加user library的方式 -
MyPointOne:
后面的异常为什么出现?好像没说清楚!
Jboss中的web-console与jmx-console的配置 -
nysin:
顶一个,现在明白了...
JAVA静态和非静态内部类 -
chenhua_1984:
很不错!
Cause: net.sf.cglib.beans.BulkBeanException异常
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
所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象
的创建及维护是由外部容器负责的。
这样控制权就是应用转移到了外部容器。控制权的转移就是所谓的反转。
所谓的依赖注入就是:
在运行期,由外部容器动态地将依赖对象注入到组件中。
处于同一个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
- spring的视频总结.rar (2.2 KB)
- 下载次数: 7
发表评论
-
Tomcat6.x + p6spy + IronTrackSQL 监控sql性能
2013-05-15 17:41 1378具体内容见附件!!! <script> (f ... -
Tomcat6.x + P6spy + SqlProfiler集成
2013-05-07 15:57 1209具体内容见附件!! -
关于设置了setMaxAge(0)而浏览器未成功删除Cookie的注意事项
2013-04-26 17:16 19630最近做了个系统,其中涉及到对Cookie的操作。当用户登录时, ... -
Struts1资料零散记录
2011-09-04 12:44 1630Struts1 1.Action什么时候被初始化? 答:当第 ... -
Spring中的<idref bean=""/>,<ref local=""/>,<idref local=""/>,<ref bean=""/>介绍
2011-07-04 22:56 1957json(JavaScript object notation ... -
Struts1的标签
2010-07-24 10:55 0Struts1.2的标签 收藏 Struts提供了五个标签库 ... -
JSP中动态INCLUDE与静态INCLUDE的区别
2010-06-17 21:57 2214JSP中动态INCLUDE与静态INCLUDE的区别 动态IN ... -
js或struts的token控制重复提交操作
2010-06-17 14:34 4215这几天由于一些原因看了一下防止重复提交的方法,现整理如下: 一 ... -
TOMCAT5.5服务器上配置数据源的方式
2010-03-26 11:20 1407在Tomcat5.5上配置数据源 ... -
关于通过URL传递中文参数的问题
2010-03-04 11:04 1500其他闲话不用多说直接上代码: 在js的脚本中写入: func ... -
用window.open()打开子窗口传参问题
2008-12-11 13:23 7287直接给出代码。 1.父窗口的js ... -
struts快速学习指南 pdf电子书
2008-12-10 17:34 1825struts快速学习指南(pdf电子书). -
struts1集成dwr
2008-12-09 18:24 3341DWR与Struts1整合 1.下載DWR Versio ... -
Struts in Action
2008-12-08 14:55 1115传个关于struts1的电子书,供大家学习。书名STRUTS ... -
模式对话框父子窗口间的通信
2008-12-07 16:13 4009本文主要对防止模 ... -
JSP弹出窗口和模式对话框
2008-12-07 15:42 28209本文转载于其它blog,在此向本文原创者,致意! ... -
Eclipse的联想功能
2008-12-07 15:36 12811当我们在用eclipse的时候,怎么能够让自己的编码速 ... -
jsp文件头
2008-12-03 19:45 13545在我们写jsp时都会写或 ... -
关于struts1的struts-config.xml的说明
2008-12-03 19:27 3007前段时间在网上看见这个关于struts1的配置文件的文章,认为 ...
相关推荐
Spring总结
包含Spring简介,AOP,SpringMVC,集成JDBC,事务,ORM框架,Spring集成知识点总结,以思维导图的形式展示,xmind文件。
Spring个人总结,基于Annotation注解的方式开发,配置
spring总结1可以查看
三大框架里的spring总结,希望对各位有用。
spring入门笔记
在这个“狂神说”系列的Spring源码总结中,我们可以深入理解Spring的核心概念和实现机制。 1. **依赖注入(DI)与控制反转(IoC)**:Spring的核心特性是依赖注入,它通过反转应用程序对对象的控制权,使得对象的创建和...
【总结】 Spring 框架是一个全方位的解决方案,它不仅提供了一种管理对象生命周期和依赖关系的有效方式,还简化了事务处理、持久层操作和Web应用的开发。通过使用Spring,开发者可以构建出更加模块化、易于测试和...
【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 开发的开源框架,由 Rod Johnson 创建,旨在简化 Java EE 应用的复杂性。它以轻量级、低侵入式的设计理念,提供了全面的解决方案,涵盖从表现层到业务逻辑...
Spring5思维导图
文章目录Spring总结Spring容器控制反转(IoC)基于XML的IoC Spring总结 Spring容器 什么是Spring容器 从概念上讲:Spring 容器是 Spring框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们...
spring方面介绍 常用注解 生命周期 AOP DI
### Spring框架概述与基本配置 #### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson创建并由Pivotal Software提供支持。Spring提供了全面的基础架构支持,使得开发者能够专注于应用...
Spring框架是Java开发中最广泛应用的轻量级框架之一,它以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心特性,极大地简化了企业级应用的开发。这份"Spring思维...