- 浏览: 951767 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (383)
- JSP 自定义标签实现 (1)
- JSP (2)
- javascript (161)
- JAVA (100)
- HTML (26)
- jQuery (11)
- J2EE (1)
- Log4J (1)
- HTML5 (6)
- DB2 (2)
- Spring (14)
- 浏览器兼容 (1)
- JavaMail (1)
- JAVA(转载) (1)
- freemarker (1)
- 项目管理 (1)
- 项目架构学习 (1)
- Oracle (11)
- 开源项目 (2)
- 网络编程 (4)
- C (1)
- C++ (0)
- Xpath (1)
- 待写 (10)
- JXL (1)
- XML (1)
- JNDI (2)
- POI (8)
- Struts2 (3)
- 异常解决方法 (1)
- Sql Server (2)
- windows (2)
- SqlServer (1)
- 前端 (1)
- 正则表达式 (2)
- 浏览器兼容问题 (2)
- 转载 (25)
- css (11)
- svn (5)
- 工程构建 (1)
- 好用的网站 (1)
- sql (3)
- chrome V8 (1)
- javacript 报表 (1)
- FusionCharts (1)
- eclipse (2)
- tomcat (4)
- hibernate (2)
- 硬件 (1)
- 杂烩 (1)
- Linux (1)
- ubuntu (1)
- 设计模式 (2)
- 缓存 (1)
- 数据库 (1)
- JVM (2)
- DOM4j (1)
- 其他 (1)
- JACOB (1)
- extjs (3)
- ligerUi (1)
- 在线HTML编辑器 (1)
- API (1)
- OpenOffice (1)
- webservice (1)
- json (1)
- 百度map (1)
- NodeJs (1)
- greeplum jdbc spring (1)
- easyui (1)
- hightchart (1)
- 游戏 (1)
- HttpClient (1)
- 正则 (1)
- canvas (4)
- HTML5,javascript,canvas (0)
最新评论
-
changelo:
缺少了秦皇岛市
中国省,市,区 json数据 -
yurui829:
解析配置行那等号前后有可能有空格,改为如下比较好:String ...
java 读取.ini配置文件工具类 -
贝塔ZQ:
poi生成excel文档,感觉蛮复杂的,可以试试用pageof ...
POI生成excel带下拉 -
langke93:
我发现greenplum 通过jdbc insert性能很差, ...
jdbc 配置连接greeplum数据,spring配置连接greeplum数据(简单配置学习) -
zhutulang:
哪有收邮件???
Spring 邮件接收发送实例
PropertyPlaceholderConfigurer使用笔记 简而言之:就是在spring的配置文件中(.xml)加入外部文件 PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。关于BeanFactoryPostProcessor和BeanPostProcessor类似。我会在其他地方介绍。 PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java Properties文件中去。这样的话,我只需要对properties文件进行修改,而不用对xml配置文件进行修改。 作用是什么呢? 有一些属性值不需要经常变更,但是有一些属性值可能随时改变,把经常会改动的属性值放在另一个文件中的话,程序使用起来也更方便。 下面将通过一个例子来理解PropertyPlaceholderConfigurer。 首先是配置文件,代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="propertyPlaceHolder.properties"/> </bean> <bean id="student" class="co.jp.beanFactoryPost.Student"> <property name="name"> <value> ${name} </value> </property> <property name="age"> <value> ${age} </value> </property> <property name="birth"> <value> ${birth} </value> </property> </bean> </beans> 在这个配置文件中最重要的就是下面这段代码, <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="propertyPlaceHolder.properties"/> </bean> PropertyPlaceholderConfigurer会读取location所设定的属性文件,并将properties文件中的值,设定给${name},${age},${birth}从而完成依赖注入。 相应的properties文件的定义如下: name=xiaohailinage=27birth=19820123 这里用到的student bean,的class的代码如下: 比较简单,主要是一个get,set方法 public class Student { private String name; private String age; private String birth; public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public void setBirth(String birth) { this.birth = birth; } public String getName() { return this.name; } public String getAge() { return this.age; } public String getBirth() { return this.birth; } } 接着,写一个测试的主类,代码如下: public class PropertyHolderPlaceDemo { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "propertyPlaceHolder.xml"); Student student = (Student) ctx.getBean("student"); System.out.println(student.getAge()); System.out.println(student.getBirth()); System.out.println(student.getName()); } } web.xml配置信息 <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> 使用spring的代理filter 延迟初始化bean:lazy-init="true"/ <bean>标签属性 或者 <beans>标签上的default-lazy-init="true 需要说明的是,如果一个bean被设置为延迟初始化,而另一个非延迟初始化的singleton bean依赖于它,那么当ApplicationContext提前实例化singleton bean时,它必须也确保所有上述singleton 依赖bean也被预先初始化,当然也包括设置为延迟实例化的bean。因此,如果Ioc容器在启动的时候创建了那些设置为延迟实例化的bean的实例,你也不要觉得奇怪,因为那些延迟初始化的bean可能在配置的某个地方被注入到了一个非延迟初始化singleton bean里面。 自动装配(autowire) 表 3.2. Autowiring modes
模式 |
说明 |
no |
|
byName |
根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为by name,而该bean包含 master 属性(同时提供 setMaster(..) 方法),Spring就会查找名为 master 的bean定义,并用它来装配给master属性。 |
byType |
如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的bean,那么将会抛出异常,并指出不能使用 byType 方式进行自动装配。若没有找到相匹配的bean,则什么事都不发生,属性也不会被设置。如果你不希望这样,那么可以通过设置 dependency-check="objects" 让Spring抛出异常。 |
constructor |
与 byType 的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。 |
autodetect |
通过bean类的自省机制(introspection)来决定是使用 constructor 还是 byType 方式进行自动装配。如果发现默认的构造器,那么将使用 byType 方式。 |
autowire-candidate = “false” 属性可以将设置不自动装配
default-autowire-candidates <bean>属性 可以使用bean名字进行自动装配
比如,将自动装配限制在名字以'Repository'结尾的bean,那么可以设置为"*Repository“
idref元素
<bean id="theTargetBean" class="..."/>
<bean id="theClientBean" class="...">
<property name="targetName">
<idref bean="theTargetBean" />
</property>
</bean>
上述bean定义片段完全地等同于(在运行时)以下的片段:
<bean id="theTargetBean" class="..." />
<bean id="client" class="...">
<property name="targetName" value="theTargetBean" />
</bean>
依赖检查
表 3.3. 依赖检查方式
模式 |
说明 |
none |
没有依赖检查,如果bean的属性没有值的话可以不用设置。 |
simple |
对于原始类型及集合(除协作者外的一切东西)执行依赖检查 |
object |
仅对协作者执行依赖检查 |
all |
对协作者,原始类型及集合执行依赖检查 |
方法注入() lookup-method replaced-method:不常使用 bean的作用域 表 3.4. Bean作用域
作用域 |
描述 |
在每个Spring IoC容器中一个bean定义对应一个对象实例。 |
|
一个bean定义对应多个对象实例。 |
|
在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext 情形下有效。 |
|
在一个HTTP Session 中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext 情形下有效。 |
|
在一个全局的HTTP Session 中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext 情形下有效。 |
根据经验 对有状态的bean应该使用prototype作用域,而对无状态的bean则应该使用singleton作用域。 初始化回调(如果想在初始化时做些事情可使用初始化回调) 方法一: public class AnotherExampleBean implements InitializingBean { public void afterPropertiesSet() { // do some initialization work } } 方法二: <bean id="exampleInitBean" class="examples.ExampleBean" init-method="init"/> public class ExampleBean { public void init() { // do some initialization work } } 析构回调 析构回调的方式也有两种原理同初始化回调 implements DisposableBean destroy-method="methodName default-init-method="init"" : 可以配置全局初始化方法名称
发表评论
-
SpringMVC的四个基本注解annotation(控制层,业务层,持久层) -- @Component、@Repository @Service、@Cont
2013-08-12 13:51 2128SpringMVC中四个基本注解: @Compone ... -
单独使用AOP的例子
2013-07-09 18:47 0待写 -
配置文件和注解的优缺点
2013-07-09 18:33 1537注释配置相对于 XML 配置具有很多的优势: 它 可以充 ... -
Spring如何实现事务的传播特性
2013-07-09 18:31 12945所谓事务传播特性就是多个事务方法相互调用时,事务如何在这些 ... -
spring三种Bean的配置方式比较
2013-08-06 13:00 584截图凑合看吧。 -
使用 JavaConfig 替换 Spring 的 XML 配置
2013-07-02 22:54 1732在这个博客上,有关Spring的文章正变成一种趋势,我应该申 ... -
希望能更深入点之Spring IoC
2013-05-27 23:24 0待写!!! -
Spring XML配置十二个最佳实践
2012-12-24 14:16 1227在这篇文章里,对于Spring XML的配置,我将向你展 ... -
Spring 资源管理
2012-05-03 07:11 950applicationContext.getResour ... -
Spring 改变配置文件名称
2012-05-03 07:06 1070<listener> <l ... -
JAVA 定时器与spring定时器比较
2012-05-03 06:36 2752package com.timer; import ... -
Spring AOP 事务配置
2012-05-03 00:08 1835<?xml version=”1.0″ encod ... -
Spring AOP 事务配置
2012-06-27 18:44 1789<?xml version=”1.0″ encod ... -
Spring 邮件接收发送实例
2012-03-29 00:12 4288import org.springframework.mail ... -
spring源码学习(一)-- spring加载配置文件的流程
2012-03-24 14:40 1391待写
相关推荐
下面是对Spring配置文件的详细介绍。 首先,Spring配置文件通常是以`.xml`为扩展名的文件,例如`beans.xml`。这些文件存储在项目的`src/main/resources`目录下,以便在运行时被自动加载。Spring容器...
在Spring框架中,自定义配置文件和标签是提高代码可读性和灵活性的重要手段。这个名为"Spring自定义配置文件便签[Maven]工程可运行"的项目,显然是一个基于Maven构建的Spring 5.0应用程序,它包含了自定义配置文件和...
Spring框架是Java开发中最常用的轻量级框架之一,它的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...深入学习Spring4的jar包和配置文件,将使你更好地驾驭Java开发环境,提高软件工程能力。
本文主要围绕"Spring源码学习七:web应用自动装配Spring配置文件1"这一主题,详细解析Web环境中Spring的初始化过程。 首先,我们注意到在传统的Java应用程序中,通常使用`ClassPathXmlApplicationContext`手动创建...
在Spring框架中,XML配置文件是核心组成部分,它定义了bean的实例化、依赖注入以及其他的框架设置。本文将深入探讨如何模拟Spring的XML配置文件注入,并通过SAXBuilder解析XML文件来实现这一过程。 首先,理解XML...
**步骤3:创建Spring配置文件** 1. 在项目的src目录下,新建一个名为`applicationContext.xml`的XML文件,这是Spring的主要配置文件。 **步骤4:配置Bean** 在`applicationContext.xml`中,定义Bean的基本结构。...
在本文中,我们将深入探讨如何将Spring框架与Apache Kafka集成,以便实现...压缩包中的"Kafka与spring集成的代码"文件应该包含了这些示例的完整实现,供你参考和学习。记得根据实际的Kafka集群配置和业务需求调整代码。
这篇"Spring学习笔记(18)----使用Spring配置文件实现事务管理"着重讲解如何通过Spring的XML配置来管理应用中的事务。这里我们将深入探讨相关知识点。 首先,Spring提供了两种事务管理方式:编程式事务管理和声明式...
SpringBoot2.x properties全部配置文件总计1500+,每个配置文件写有中文解释。适用于系统学习springboot 深入学习springboot的同学。
在提供的配置文件中,可能包含了`applicationContext.xml`,这是Spring容器的主要配置文件,用于定义Bean及其依赖关系。例如,你可以在这里看到DataSource的配置,用于连接数据库;还有Bean的定义,如Service和DAO,...
一个基本的Spring配置文件可能包含以下元素: - `<beans>`:根元素,表示配置文件的开始。 - `<bean>`:用于定义一个Bean,包括其ID、类名、属性等。 - `<property>`:用于设置Bean的属性值,通过name或ref属性关联...
在Spring配置文件中,通过`<mybatis:scan>`标签扫描Mapper接口,并使用`<bean>`标签定义SqlSessionTemplate或SqlSessionDaoSupport来连接Mapper和SqlSessionFactory。 在Spring中,你可以利用@Autowired注解来注入...
总的来说,理解Spring配置文件的结构和语法规则,以及如何正确处理配置文件的引入,是避免相关问题的关键。在遇到问题时,检查配置文件的语法、Bean定义、路径设置以及依赖关系是排查问题的常用步骤。同时,学习和...
在Spring配置文件中,你需要定义`JbpmConfiguration`和`JbpmRuntimeManagerFactoryBean`,它们负责创建jbpm的工作空间和获取运行时管理器。 4. **注册任务监听器和服务**:jbpm允许你注册监听器来处理流程事件,如...
3. **Bean的定义与配置**:讲解XML配置文件、注解配置以及Java配置三种方式创建Bean,包括属性注入、构造器注入等。 4. **AOP编程**:阐述AOP的基本概念,如切面、通知、连接点、切入点表达式等,以及如何实现方法...
通过研究这些不同版本的核心配置文件,开发者可以深入理解Spring的发展历程,学习如何根据项目需求选择合适的配置方式,以及如何进行版本迁移。同时,对于新接触Spring的开发者来说,这些备份文件提供了学习不同配置...
Spring Boot 配置文件深入讲解 ...通过本节课的学习,我们掌握了 Spring Boot 配置文件的基本概念和使用方法,包括配置文件的类型、值的写法、对象和 Map 的写法、数组的写法、自定义配置属性和配置自动提示等。
本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring配置文件的设置、普通属性的注入、自定义属性编辑器、公共属性的注入、Spring注解等内容。 一、Spring配置文件的设置 在MyEclipse中编写Spring配置...
这是一个struts+hibernate+spring得完成实例,大部分ssh实例都是在一个配置文件里进行hibernate+spring+struts的配置。我这个很清楚的分成了四个配置文件。非常适合大型项目的开发学习!