加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

applicationContext.xml文件详解

发布时间:2020-12-16 06:01:06 所属栏目:百科 来源:网络整理
导读:applicationContext.xml文件详解 http://apps.hi.baidu.com/share/detail/15543517 http://smf535.blog.163.com/blog/static/1886842201141161330787/ 以下是详解Spring的applicationContext.xml文件代码: !--头文件,主要注意一下编码-- ?xmlversion="1.0"

applicationContext.xml文件详解

http://apps.hi.baidu.com/share/detail/15543517

http://smf535.blog.163.com/blog/static/1886842201141161330787/

以下是详解Spring的applicationContext.xml文件代码:
<!--头文件,主要注意一下编码-->
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--建立数据源-->
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource">
<!--数据库驱动,我这里使用的是Mysql数据库-->
<propertyname="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<!--数据库地址,这里也要注意一下编码,不然乱码可是很郁闷的哦!-->
<propertyname="url">
<value>

jdbc:mysql://localhost:3306/tie?useUnicode=true&characterEncoding=utf-8
</value>
</property>
<!--数据库的用户名-->
<propertyname="username">
<value>root</value>
</property>
<!--数据库的密码-->
<propertyname="password">
<value>123</value>
</property>
</bean>
<!--把数据源注入给Session工厂-->
<beanid="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
<!--配置映射文件-->
<propertyname="mappingResources">
<list>
<value>com/alonely/vo/User.hbm.xml</value>
</list>
</property>
</bean>
<!--把Session工厂注入给hibernateTemplate-->
<!--解释一下hibernateTemplate:hibernateTemplate提供了很多方便的方法,在执行时自动建立HibernateCallback对象,例如:load()、get()、save、delete()等方法。-->
<beanid="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<constructor-arg>
<reflocal="sessionFactory"/>
</constructor-arg>
</bean>
<!--把DAO注入给Session工厂-->
<beanid="userDAO"class="com.alonely.dao.UserDAO">
<propertyname="sessionFactory">
<refbean="sessionFactory"/>
</property>
</bean>
<!--把Service注入给DAO-->
<beanid="userService"class="com.alonely.service.UserService">
<propertyname="userDAO">
<reflocal="userDAO"/>
</property>
</bean>

使用<bean>来为每一个bean进行设定,“id”属性是用以设定Bean的实例别名,稍后可以使用id来取得Bean的实例,"class"属性用来指定Bean的类名称,<property>标签的userDAO设定了setter的名称(setUserDAO),并ref属性隐射到到已经设定的bean的id。还可以有value属性。

另外:

<beanid="user"class="com.alonely.struts.action.UserAction">
<constructor-argindex=“0”>
<value>汤青</value>

</constructor>

<constructor-argindex=“1”>
<value>女</value>

</constructor>
</bean>

必须是UserAction中有构造函数,和两个成员变量,index隐射,建议还要有无参数构造函数。这就是ConstructorInjection注入类型。

<!--把Action注入给Service-->
<beanname="/user"class="com.alonely.struts.action.UserAction">
<propertyname="userService">
<refbean="userService"/>
</property>
</bean>
</beans>

下面是Struts+Spring+Hibernate的中applicationContext.xml配置文件分析

<?xmlversion="1.0"encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<!--此配置文件整合了Spring和hibernate的配置文件!采用BasicDataSource注入到hibernatesessionFactory中,以得到数据库连接-->
<!--dbcp相关参数配置见http://marzian.blog.163.com/blog/static/266863120086845013920-->
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
<propertyname="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<propertyname="url">
<value>jdbc:oracle:thin:@10.18.100.52:1521:dxcp1</value>
</property>
<propertyname="username">
<value>newgspls</value>
</property>
<propertyname="password">
<value>newgspls</value>
</property>
<propertyname="initialSize">
<value>1</value>
</property>
<propertyname="maxActive">
<value>60</value>
</property>
<propertyname="minIdle">
<value>1</value>
</property>
<propertyname="maxWait">
<value>6000</value>
</property>
<propertyname="validationQuery">
<value>selectuserfromdual</value>
</property>
</bean>
<!--从连接池中抽取出本地数据库JDBC对象几种JDBC对象抽取器,可根据不同的应用服务器进行调整
WebLogic:WebLogicNativeJdbcExtractor
WebSphere:WebSphereNativeJdbcExtractor
JBoss:JBossNativeJdbcExtractor
-->
<beanid="nativeJdbcExtractor"class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"lazy-init="true"></bean>

<!--s可以使用Spring的JDBC帮助类jdbcTemplate-->
<beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate">
<propertyname="dataSource"><refbean="dataSource"/></property>
</bean>
<!--Spring提供了两种LobHandler用于处理Blob数据
DefaultLobHandler:适用于大部分的数据库,如SqlServer,MySQL,对Oracle10g也适用,但不适用于Oracle9i
oracleLobHandler:适用于Oracle9i和Oracle10g。
-->
<beanid="lobHandler"class="org.springframework.jdbc.support.lob.OracleLobHandler"lazy-init="true">
<propertyname="nativeJdbcExtractor">
<reflocal="nativeJdbcExtractor"/>
</property>
</bean>
<!--HibernateSession工厂配置-->
<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource">
<reflocal="dataSource"/>
</property>
<propertyname="lobHandler"ref="lobHandler"/>
<propertyname="mappingResources">
<list>
<!--hibernate实体映射文件!即生成的*.hbm.xml-->
<value>com/dao/hibernate/xml/MaintenanceWork.hbm.xml</value>
<value>com/dao/hibernate/xml/SignIn.hbm.xml</value>
</list>
</property>
<!--sessionFactory相关配置-->
<propertyname="hibernateProperties">
<props>
<propkey="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<propkey="hibernate.show_sql">true</prop>
<!--采用Hibernate2.0的HSql解释器,解决了中文问题-->
<propkey="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
<!--打开QueryCache开关,需要Cache的query需要单独配置-->
<propkey="hibernate.cache.use_query_cache">true</prop>
<propkey="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
</props>
</property>
</bean>

<!--事务管理器配置-->
<beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>
<!--AOP事务配置-->
<tx:adviceid="txAdvice"transaction-manager="transactionManager">
<!--thetransactionalsemantics...-->
<tx:attributes>
<!--allmethodsstartingwith'get'areread-only-->
<tx:methodname="get*"read-only="true"/>
<tx:methodname="add*"read-only="false"/>
<tx:methodname="insert*"read-only="false"/>
<tx:methodname="update*"read-only="false"/>
<tx:methodname="del*"read-only="false"/>
<tx:methodname="audit*"read-only="false"/>

<!--othermethodsusethedefaulttransactionsettings(seebelow)-->
<tx:methodname="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcutid="SysFileOperation"expression="execution(*com.biz.system.SysFilesBiz.*(..))"/>
<aop:advisoradvice-ref="txAdvice"pointcut-ref="SysFileOperation"/>
</aop:config>


<!--jdbcDao配置begion-->
<beanid="jdbcDao"class="com.gsww.newgspls.dao.JdbcDao">
<propertyname="ds">
<reflocal="dataSource"/>
</property>
</bean>

<!--信息发布配置开始-->
<beanid="sysInfoBiz"class="com.biz.info.SysInfoBiz">
<propertyname="sysInfoDao">
<reflocal="sysInfoDao"/>
</property>
</bean>
<beanid="sysInfoDao"class="com.dao.info.SysInfoDao">
<propertyname="sessionFactory">
<reflocal="sessionFactory"/>
</property>
</bean>
</beans>

业务类SysInfoBiz

在applicationContext.xml配置注入关系后,在业务类中通过set注入即可得到SysInfoDao

packagecom.biz.info;

/**
*@author作者:周伟
*
*@version创建时间:2008-7-1下午04:11:04
*
*类说明

*/

importjava.util.List;

importcom.dao.info.SysInfoDao;
importcom.domain.info.SysInfo;
publicclassSysInfoBiz{

privateSysInfoDaosysInfoDao=null;

/**
*判断用户是否包含在已读人列表,即通过clob字段里的用户ID查看登陆用户是否已经读过
*
*@paramsupportTable
*@paramreader
*@return
*/
publicbooleanisRead(SysInfosysInfo,Stringreader){
if(sysInfo.getInfoReader()!=null){
Stringstr=sysInfo.getInfoReader();
if(str.indexOf(",")<0){
return(str.contains(reader));
}else{
Stringpstr=reader+",";
Stringastr=","+reader;
Stringstr1=","+reader+",";
return(str.startsWith(pstr)||str.endsWith(astr)||str
.contains(str1));
}
}else{
returnfalse;
}

}

/**
*返回信息读者个数
*
*@paramsupportTable
*@return
*/
publicintreadTime(SysInfosysInfo){
if(sysInfo.getInfoReader()!=null){
Stringstr=sysInfo.getInfoReader();
String[]str1=str.split(",");
returnstr1.length;
}else{
return0;
}

}

/**
*对未在已读人列表的读者进行添加到SupReader
*
*@paramsupportTable
*@paramreader
*@return
*/
publicbooleanaddReader(SysInfosysInfo,Stringreader){
if(reader!=null&&!reader.equals("null")
&&!isRead(sysInfo,reader)){
if(sysInfo.getInfoReader()!=null
&&!sysInfo.getInfoReader().equals("null")
&&!sysInfo.getInfoReader().equals("")){
sysInfo.setInfoReader(sysInfo.getInfoReader()+","+reader);
}else{
sysInfo.setInfoReader(reader);
}
try{
sysInfoDao.update(sysInfo);
}catch(Exceptionre){
re.printStackTrace();
}
returntrue;
}else{
returnfalse;
}

}

/**

*删除

*/

publicvoiddelete(SysInfopersistentInstance){
sysInfoDao.delete(persistentInstance);
}

publicListfindAll(){
returnsysInfoDao.findAll();
}

publicListfindByExample(SysInfoinstance){
returnsysInfoDao.findByExample(instance);
}

/**

*通过id得到实体

*/

publicSysInfofindById(Stringid){
returnsysInfoDao.findById(id);
}

/**

*保存实体

*/

publicvoidsave(SysInfotransientInstance){
transientInstance.setFlag("1");
sysInfoDao.save(transientInstance);
}

/**

*更新实体

*/

publicvoidupdate(SysInfotransientInstance){
transientInstance.setFlag("1");
sysInfoDao.update(transientInstance);
}

publicSysInfoDaogetSysInfoDao(){
returnsysInfoDao;
}

publicvoidsetSysInfoDao(SysInfoDaosysInfoDao){
this.sysInfoDao=sysInfoDao;
}

publicPageDAOgetPageDao(){
returnpageDao;
}

publicvoidsetPageDao(PageDAOpageDao){
this.pageDao=pageDao;
}

}

SysInfoDao连接数据库类

packagecom.dao.info;

/**
*@author作者:周伟
*
*@version创建时间:2008-7-1下午04:11:04
*
*类说明信息发布公用表dao类
*/

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;

importcom.gsww.newgspls.domain.info.SysInfo;

publicclassSysInfoDaoextendsHibernateDaoSupport{

/**
*保存SysInfo实体
*
*@paramtransientInstanceSysInfo对象
*/
publicvoidsave(SysInfotransientInstance){
try{
getHibernateTemplate().save(transientInstance);
}catch(RuntimeExceptionre){
throwre;
}
}

/**
*更新SysInfo实体
*
*@paramtransientInstanceSysInfo对象
*/

publicvoidupdate(SysInfotransientInstance){
try{
getHibernateTemplate().update(transientInstance);
}catch(RuntimeExceptionre){
throwre;
}
}

/**
*删除SysInfo实体
*
*@paramtransientInstanceSysInfo对象
*/

publicvoiddelete(SysInfopersistentInstance){
try{
getHibernateTemplate().delete(persistentInstance);
}catch(RuntimeExceptionre){
throwre;
}
}

/**
*通过ID得到SysInfo对象
*
*@paramid信息主键
*@return
*/

publicSysInfofindById(java.lang.Stringid){
try{
SysInfoinstance=(SysInfo)getHibernateTemplate().get(
"com.domain.info.SysInfo",id);
returninstance;
}catch(RuntimeExceptionre){
throwre;
}
}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读