spring中property

spring配置中property作为bean的属性。也就是指一个类中的成员。同时这个成员必须有get和set方法。

property的一般用法:

<bean id="playerDataManager" class="com.cp.game.PlayerDataManager" init-method="init" scope="singleton">

<property name="sleepTime" value="${app.dispatcher.sleepTime}" />  //从外部的property文件中用el表达式获取值

<property name="sleepTime" value="333" />  //直接在赋值

<property name="playerDao" ref="playerDao" />    引用其他bean对象。  ref的值是其他bean的id名

//内部嵌套bean的用法

<property name="messageExecutor">
            <bean class="com.cp.netty.domain.FiexThreadPoolExecutor"
                destroy-method="shutdown">
                <constructor-arg value="${app.dispatcher.pool.corePoolSize}" />
                <constructor-arg value="${app.dispatcher.pool.maximumPoolSize}" />
                <constructor-arg value="${app.dispatcher.pool.keepAliveSecond}" />
            </bean>
</property>

有多个值的property配置(相当于集合)

<property name="locations">
            <list>
                <value>config/settings.properties</value>
                <value>classpath:c3p0.properties</value>
                <value>classpath:mchange-log.properties</value>
                <value>classpath:mchange-commons.properties</value>
            </list>
</property>

</bean>

进阶问题:

<property name="a" ref="b" />和<property name="a" > <ref bean="b" /> </property>这两种方式有啥不一样的?
spring的配置文件可能会有多个<property name="a" ref="b" />就是找当前配置文件里的bean 也就是b<ref bean ="b"/> 是寻找全局中的 bean;就是说<ref 可以查找别的XML配置文件中的bean。这样是可以找到其他配置文件定义id为b的bean的
也可以想到 在工作中一个项目spring的配置文件 肯定有好几个用<ref bean="b" /> 来关联指定在其他xml文件中的bean很方便而且不容易出错   其实<ref标签里 有3种属性 <ref bean=""/>,<ref local=""/>,<ref parent=""/>  而第一种不用说了 第二种就是关联当前xml的bean 也就等同于<property name="a" ref="b" />这种写法  而第三种就是 用于指定其依赖的父 JavaBean 定义。
 
时间: 2024-10-19 12:30:11

spring中property的相关文章

Spring中@Transactional事务回滚实例及源码

一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员.但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了.这时候我们希望如果成员删除失败了,之前删除的部门也取消删除.这种场景就可以使用@Transactional事物回滚. 二.checked异常和unc

spring中依赖注入方式总结

Spring中依赖注入的四种方式 在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的setter方法注入 首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性.例如:为UserBiz类注入UserDAO,同时为UserBiz注入基本数据类型String,那么这时,就要为UserDAO对象和String类型设置se

spring中使用parent属性来减少配置

在基于spring框架开发的项目中,如果有多个bean都是一个类的实力,如配置多个数据源时,大部分配置的属性都一样,只有少部分不一样,经常是copy上一个的定义,然后修改不一样的地方.其实spring bean定义也可以和对象一样进行继承. 示例如下:  <bean id="testBeanParent"  abstract="true"  class="com.wanzheng90.bean.TestBean">         &

Spring中Ordered接口简介

前言 Spring中提供了一个Ordered接口.Ordered接口,顾名思义,就是用来排序的. Spring是一个大量使用策略设计模式的框架,这意味着有很多相同接口的实现类,那么必定会有优先级的问题. 于是,Spring就提供了Ordered这个接口,来处理相同接口实现类的优先级问题. Ordered接口介绍 首先,我们来看下Ordered接口的定义: public interface Ordered { int HIGHEST_PRECEDENCE = Integer.MIN_VALUE;

Spring学习笔记——Spring中lazy-init与abstract具体解释

Spring的懒载入的作用是为了避免无谓的性能开销,就是当真正须要数据的时候才去运行数据的载入操作.不只在Spring中.我们在实际的编码过程中也应该借鉴这种思想,来提高我们程序的效率. 首先我们看一段配置文件: <beans> <bean> <bean id="creditService" type="com.jader.service.CreditServiceImpl" lazy-init="true"/>

Velocity初探小结--Velocity在spring中的配置和使用

最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术,有点类似与JSP,它允许页面设计者引用Java中定义的方法.前端页面设计者和后端Java开发者能够同时使用MVC的模式开发网站,这样前端能够把精力放在页面的设计上,后端也可以把精力放在代码开发上.Velocity把Java代码从Web页面中分离, 使网站可维护性更强. 注:项目使用的是Spring+

spring中的 classpath* 存在可移植性问题

classpath* 的可移植性问题,许多人都应该遇到过了.下面就是一个例子(使用的是spring4.1.5和mybatis3.2.8): <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <pr

Spring中@Transactional用法深度分析之一

引言: 在Spring中@Transactional提供一种控制事务管理的快捷手段,但是很多人都只是@Transactional简单使用,并未深入了解,其各个配置项的使用方法,本文将深入讲解各个配置项的使用. 1.  @Transactional的定义 Spring中的@Transactional基于动态代理的机制,提供了一种透明的事务管理机制,方便快捷解决在开发中碰到的问题.在现实中,实际的问题往往比我们预期的要复杂很多,这就要求对@Transactional有深入的了解,以来应对复杂问题.

关于spring中使用多个quatz配置文件配置计划任务时,只有其中一个文件的任务有效的问题

关于spring中使用多个quatz配置文件配置计划任务时,只有其中一个文件的任务有效的问题 问题描述 工作中用到了spring与quatz来实现定时器触发一些计划任务,原本都写在一个配置文件里.后来将不同业务逻辑拆分成两个文件后,发现每次spring容器启动后,只有其中一个文件中配置的计划任务有再执行,另一个则没有. 解决方案 通过google在stackoverflow上找到了解决方案,其实原因很简单.在spring容器中配置了多个Scheduler的情况下,必须给每个Scheduler指定