spring配置文件各个属性详解

合集下载

spring配置文件头文件解读

spring配置文件头文件解读

<beans
xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xmlns:p="/schema/p"
xmlns:tx="/schema/tx"
xmlns:aop="/schema/aop"
xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.1.xsd /schema/tx
/schema/tx/spring-tx-3.1.xsd
/schema/aop
/schema/aop/spring-aop-3.1.xsd"> xmlns:意思为域,为提供xml命名空间支持而添加的域。

首先,xml有格式,而为了spring的配置文件增加的节点能满足要求合法,所以必须引用校验该xml的格式文件。

下面解释上面代码的每一行。

1. 第一行:初始化bean的格式文件地址
2. 第二行:辅助初始化bean
3. 第三行:Spring的p标签是基于xml Schema的配置方式,
目的是简化配置方式,如果不需要简化,可删除
4. 第四行:关于spring的上下文
5. 第五行:关于面向切面编程
6. 第六行:用来定义xmlschema的地址,也就是xml书写时需
要遵循的语法,两部分组成,前面是命名空间的名字,后面是
xsd(xmlschema)的地址。

Spring配置文件中事务的属性

Spring配置文件中事务的属性

Spring配置⽂件中事务的属性1.事务传播属性# propagation: 传播REQUIRED: 需要事务,外部存在事务融⼊当前事务,外部没有事务,开启新的事务SUPPORTS: ⽀持事务,外部存在事务融⼊当前事务,外部没有事务,不开启新的事务REQUIRES_NEW: 每次开启新的事务,如果外部存在事务外部事务挂起,开启新的事务运⾏,运⾏结束后回复外部事务NOT_SUPPORTED: 不⽀持事务,如果外部存在事务外部事务挂起,已⾮事务⽅式运⾏.NEVER: 不⽀持事务,存在事务报错MANDATORY: 强制事务没有事务报错NESTED: 嵌套事务,数据库不⽀持2.事务的隔离级别# isolation 隔离级别DEFAULT: 采⽤数据库默认隔离级别READ_UNCOMMITTED: 读未提交READ_COMMITTED: 读提交⽤来避免脏读现象出现的 oracle默认隔离级别REPEATABLE_READ: 可重复读主要是⽤来避免不可重复读现象出现的 (在⼀次事务中⼀⽅更新,导致两次查询结果不⼀致这种情况叫不可重复读) mysql默认隔离级别 SERIALIZABLE: 序列化读⽤来避免幻影读现象出现 (在⼀次事务中⼀⽅插⼊,导致两次查询结果不⼀致这种情况叫幻影读)3.读写和异常性# readonlytrue: 本次事务只读false: 本次事务⾮只读<tx:method name="save*" propagation="REQUIRES_NEW" read-only="true|false" isolation="SERIALIZABLE"/># rollback-for && no-rollback-for=""rollback-for: 遇到什么类异常回滚no-rollback-for: 遇到什么类异常不回滚<tx:method name="save*" rollback-for="" no-rollback-for="" propagation="REQUIRES_NEW" read-only="true" isolation="SERIALIZABLE"/># timeout 超时性timeout: -1 永不超时。

Spring配置解析之Properties

Spring配置解析之Properties

Spring配置解析之Properties 1.简单⽰例:SpringBoot中的的配置简单属性类⽀持ConfigurationProperties⽅式,看⼀个简单的⽰例。

1 @ConfigurationProperties(prefix = "org.dragonfei.demo")2public class DemoProperties {3private String name;4private String password;5private String test;67public String getName() {8return name;9 }1011public void setName(String name) { = name;13 }1415public String getPassword() {16return password;17 }1819public void setPassword(String password) {20this.password = password;21 }2223public String getTest() {24return test;25 }2627public void setTest(String test) {28this.test = test;29 }3031 @Override32public String toString() {33return "DemoProperties{" +34 "name='" + name + '\'' +35 ", password='" + password + '\'' +36 ", test='" + test + '\'' +37 '}';38 }39 }定义Properties类1 =dragonfei2 org.dragonfei.demo.password=password3 org.dragonfei.demo.test=test添加配置1 @Configuration2 @EnableConfigurationProperties({DemoProperties.class})3public class DemoConfiguration {4 }注⼊Properties1 @RunWith(SpringJUnit4ClassRunner.class)2 @SpringApplicationConfiguration(classes = DemoConfiguration.class)3 @EnableAutoConfiguration4public class DemoPropertiesTest {56 @Autowired7private DemoProperties properties;8 @Test9public void testProperties(){10 System.out.println(properties.toString());11 }12 }简单单元测试1 DemoProperties{name='dragonfei', password='password', test='test'}运⾏单元测试结果DemoProperties神奇的注⼊到Spring容器中了。

spring配置文件详解

spring配置文件详解

spring配置文件详解Spring是一个轻量级的开源Java框架,它提供了一种简化Java应用开发的方式。

在Spring框架中,配置文件起着非常重要的作用,它用于配置应用程序中的各种组件和对象。

Spring配置文件通常使用XML格式,但也可以使用注解或Java代码进行配置。

在配置文件中,我们可以定义Bean(对象)、依赖关系、AOP(面向切面编程)等等。

下面将详细介绍Spring配置文件的各个部分。

1. 命名空间和约束在Spring配置文件的开头,我们需要声明命名空间和约束。

命名空间用于引入Spring的命名空间,以便我们可以使用Spring提供的各种功能。

约束用于验证配置文件的正确性。

2. Bean定义在Spring配置文件中,我们可以定义多个Bean。

每个Bean都有一个唯一的ID和一个类名或接口名。

我们可以使用构造函数或工厂方法来创建Bean,并指定Bean的属性值。

3. 依赖注入依赖注入是Spring框架的核心特性之一。

通过依赖注入,我们可以将一个Bean的依赖关系委托给Spring容器来管理。

在配置文件中,我们可以使用<property>元素来设置Bean的属性值,也可以使用<constructor-arg>元素来设置构造函数的参数。

4. 别名和引用在配置文件中,我们可以为Bean定义别名,以便在其他地方使用更简洁的名称来引用Bean。

我们还可以使用<ref>元素来引用其他Bean。

5. 集合和数组Spring配置文件还支持定义集合和数组类型的属性。

我们可以使用<list>、<set>、<map>和<props>元素来定义不同类型的集合。

6. 自动装配自动装配是Spring框架的另一个重要特性。

通过自动装配,Spring容器可以根据Bean之间的依赖关系自动将它们连接起来。

在配置文件中,我们可以使用autowire属性来指定自动装配的方式。

springlog4j2.xml配置文件详解

springlog4j2.xml配置文件详解

springlog4j2.xml配置⽂件详解⼀、log4j2介绍 log4j 2.x版本不再⽀持像1.x中的.properties后缀的⽂件配置⽅式,2.x版本配置⽂件后缀名只能为".xml",".json"或者".jsn"。

配置⽂件的格式:log2j配置⽂件可以是xml格式的,也可以是json格式的。

配置⽂件的位置:log4j2默认会在classpath⽬录下寻找log4j2.xml、log4j.json、log4j.jsn等名称的⽂件。

系统选择配置⽂件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的⽂件. (2).classpath下的名为log4j2-test.xml的⽂件. (3).classpath下名为log4j2.json 或者log4j2.jsn的⽂件. (4).classpath下名为log4j2.xml的⽂件. 我们⼀般默认使⽤log4j2.xml进⾏命名。

⼆、配置⽂件节点解析 (1).根节点Configuration有两个属性:status和monitorinterval,有两个⼦节点:Appenders和Loggers(表明可以定义多个Appender和Logger)。

status⽤来指定log4j本⾝的打印⽇志的级别。

monitorinterval⽤于指定log4j⾃动重新配置的监测间隔时间,单位是s,最⼩是5s。

(2).Appenders节点,常见的有三种⼦节点:Console、RollingFile、File。

Console节点⽤来定义输出到控制台的Appender。

name:指定Appender的名字. target:SYSTEM_OUT 或 SYSTEM_ERR,⼀般只设置默认:SYSTEM_OUT。

PatternLayout:输出格式,不设置默认为:%m%n。

SpringBoot入门篇--关于properties和yml两种配置文件的一些事情

SpringBoot入门篇--关于properties和yml两种配置文件的一些事情

SpringBoot⼊门篇--关于properties和yml两种配置⽂件的⼀些事

我们在使⽤SpringBoot这个框架的时候都⼀定使⽤或者说是见到过application.properties或者是application.yml,经不住有⼈就会问这俩⽂件到底是什么情况,其实说⽩了这两个都是SpringBoot留下的配置⽂件,都可以进⾏配置,接下来我们就讲讲他们两个的⼀些区别。

⾸先我们最关注的应该是格式问题,两个⽂件在进⾏配置的时候的格式都是⼀样的么?properties⽂件在进⾏配置的时候⼀定是⼀个key---value,对于这⼀条的解释就是⼀个可以对某电配置完整解释的⼀定是在同⼀级别,就是我们可以如下图所⽰看到的:
然后我们再来看⼀下在yml⽂件中我们应该怎样进⾏配置达到相同的效果:
我们可以观察到的格式就是yml⽂件是梯级呈现的,我们应该注意⼀下⼏个⽅⾯:
1>在properties⽂件⾥⾯的 “ .” 连接在yml⽂件⾥⾯全部换成 ":" 进⾏连接,并且每⼀级之间必须换⾏,在第⼆级开始应该进⾏⼀个Tab键的缩进,当然如果是同级的就不需要进⾏缩进
2>在yml⽂件⾥⾯如果是需要进⾏赋值那么必须是要在 ":" 后⾯进⾏⼀个空格键的缩进
3>在yml⽂件⾥⾯所有的配置,相同级别只能出现⼀次,⽐如我们使⽤了spring这个级别,那么我们在后边进⾏spring级别的配置的时候就必须在这个地⽅进⾏,不能在写⼀个spring级别。

Spring中属性文件properties的读取与使用详解

Spring中属性文件properties的读取与使用详解

Spring中属性⽂件properties的读取与使⽤详解Spring中属性⽂件properties的读取与使⽤详解实际项⽬中,通常将⼀些可配置的定制信息放到属性⽂件中(如数据库连接信息,邮件发送配置信息等),便于统⼀配置管理。

例中将需配置的属性信息放在属性⽂件/WEB-INF/configInfo.properties中。

其中部分配置信息(邮件发送相关):#邮件发送的相关配置email.host = email.port = xxxername = xxxemail.password = xxxemail.sendFrom=***********在Spring容器启动时,使⽤内置bean对属性⽂件信息进⾏加载,在bean.xml中添加如下:Xml代码<!-- spring的属性加载器,加载properties⽂件中的属性 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"><value>/WEB-INF/configInfo.properties</value></property><property name="fileEncoding" value="utf-8" /></bean>属性信息加载后其中⼀种使⽤⽅式是在其它bean定义中直接根据属性信息的key引⽤value,如邮件发送器bean的配置如下:Xml代码<!-- 邮件发送 --><bean id="mailSender"class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host"><value>${email.host}</value></property><property name="port"><value>${email.port}</value></property><property name="username"><value>${ername}</value></property><property name="password"><value>${email.password}</value></property><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop><prop key="sendFrom">${email.sendFrom}</prop></props></property></bean>另⼀种使⽤⽅式是在代码中获取配置的属性信息,可定义⼀个javabean:ConfigInfo.java,利⽤注解将代码中需要使⽤的属性信息注⼊;如属性⽂件中有如下信息需在代码中获取使⽤:Java代码#⽣成⽂件的保存路径file.savePath = D:/test/#⽣成⽂件的备份路径,使⽤后将对应⽂件移到该⽬录file.backupPath = D:/test bak/ConfigInfo.java 中对应代码:Java代码@Component("configInfo")public class ConfigInfo {@Value("${file.savePath}")private String fileSavePath;@Value("${file.backupPath}")private String fileBakPath;public String getFileSavePath() {return fileSavePath;}public String getFileBakPath() {return fileBakPath;}}业务类bo中使⽤注解注⼊ConfigInfo对象:Java代码@Autowiredprivate ConfigInfo configInfo;需在bean.xml中添加组件扫描器,⽤于注解⽅式的⾃动注⼊:Xml代码<context:component-scan base-package="com.my.model" />(上述包model中包含了ConfigInfo类)。

Spring_c3p0 配置详解

Spring_c3p0 配置详解

<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
配置一个数据源
Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。
DBCP数据源
DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar。下面是使用DBCP配置MySql数据源的配置片断:
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>root</value>
</property>
<property name="password">
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

spring配置文件各个属性详解分类:spring 2012-08-09 11:25 9316人阅读评论(2) 收藏举报springaophibernateattributesxhtmlwebsphere目录(?)[+]一、引用外部属性文件<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:mail.properties</value><value>classpath:jdbc.properties</value></list></property></bean>我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。

该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${...}value)。

注意:而在spring2.5的版本中提供了一种更简便的方式,如:1.<context:property-placeholderlocation="classpath:config/jdbc.properties"/>这样以后要使用属性文件中的资源时,可以使用${属性名}来获得。

二、常用数据源的配置第一种是:DBCP数据源,(需要加入2个jar文件,在spring中的lib下jakarta-commons/commons-dbcp.jar和commons-pools.jar)主要配置如下:<!-- Mysql版--><bean id="dataSource"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url"value="${jdbc.url}"></property><property name="username" value="${ername}"></property><property name="password" value="${jdbc.password}"></property></bean>第二种是:c3p0数据源,跟第一种一个类型,需加入c3p0.jar包。

第三种是:JNDI数据源,配置在高性能的应用服务器(如WebLogic、WebSphere等)1.<bean id="dataSource"class="org.springframework.jndi.JndiObjectFactoryBean">2.<property name="jndiName"value="java:comp/env/jdbc/bbt"/>3.</bean>从spring2.0开始提供jee命名空间,可以简化配置如下:1. <jee:jndi-lookup id="dataSource"jndi-name="java:comp/env/jdbc/bbt"/>三、配置事务管理器1、Spring JDBC 和iBatis事务管理器的配置<!-- 配置事务管理器--><bean id="TransactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>2、Hibernate3以上事务管理器的配置(先要集成hibernate,再配置事务管理器)1.<!-- 集成hibernate -->2.<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">3.<property name="dataSource"ref="dataSource"/>4.<property name="mappingResources">5.<list>6.<value>classpath:product.hbm.xml</value>7.</list>8.</property>9.<property name="hibernateProperties">10.<props>11.<prop key="hibernate.dialect">12.</props>13.</property>14.</bean>15.16.<!-- 配置Hibernate事务策略 -->17.<bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">18.<property name="sessionFactory"ref="sessionFactory"></property>19.</bean>3、配置tx/aop声明式事务<!-- 声明一个切面-->1. <tx:advice id="txAdvice"transaction-manager="txManager">2. <tx:attributes>3. <tx:method name="find*"propagation="REQUIRED"read-only="true"/>4. <tx:method name="save*"propagation="REQUIRED"/>5. <tx:method name="update*"propagation="REQUIRED"/>6. <tx:method name="*"propagation="SUPPORTS"read-only="true"/>7. </tx:attributes>8. </tx:advice>别的例子,可以进行对比下:<tx:advice id="userTxAdvice" transaction-manager="TransactionManager"><tx:attributes><tx:method name="delete*" propagation="REQUIRED" read-only="false"rollback-for="ng.Exception" no-rollback-for="ng.RuntimeException"/><tx:method name="insert*" propagation="REQUIRED" read-only="false"rollback-for="ng.RuntimeException" /><tx:method name="update*" propagation="REQUIRED" read-only="false"rollback-for="ng.Exception" /><tx:method name="find*" propagation="SUPPORTS"/><tx:method name="get*" propagation="SUPPORTS"/><tx:method name="select*" propagation="SUPPORTS"/></tx:attributes></tx:advice><!-- 把切面注入到业务中-->1. <aop:config>2. <aop:pointcut id="productServiceMethods"expression="execution(*com.wzc.student.business.*.*(..))"/>3. <aop:advisor advice-ref="txAdvice"pointcut-ref="productServiceMethods"/>4. </aop:config>对比:<aop:config><aop:pointcut id="pc" expression="execution(public *com.haso.bscsserver.service.*.*(..))" /> <!--把事务控制在Service层--><aop:advisor pointcut-ref="pc" advice-ref="userTxAdvice" /></aop:config>四、context:component-scan<!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能--><context:component-scan base-package="com.haso.bscsserver"><!-- 允许定义过滤器将基包下的某些类纳入或排除<context:include-filter type="annotation"expression="org.springframework.stereotype.Controller"/> --></context:component-scan>请参考/ydwuli06/article/details/6993219,具体的自己还深入研究过五、aop注解支持<!-- aop注解支持--><aop:aspectj-autoproxy proxy-target-class="true"/>六、缓存配置<!-- 缓存配置--><bean id="cacheManager"class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"><property name="configLocation" value="/WEB-INF/ehcache.xml"/></bean><!-- A facade to the Ehcache cache class --><bean id="cacheProviderFacade"class="org.springmodules.cache.provider.ehcache.EhCacheFacade"><property name="cacheManager" ref="cacheManager" /></bean><?xml version="1.0" encoding="UTF-8"?><ehcache>ehcache.xml文件:<!--name:Cache的唯一标识maxElementsInMemory:内存中最大缓存对象数maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大eternal:Element是否永久有效,一但设置了,timeout将不起作用overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中timeToIdleSeconds:设置Element在失效前的允许闲置时间。

相关文档
最新文档