LINUX开源监控平台Nagios(警告功能配置)
2010-08-24 22:58
691 查看
采用这种方式的配置时候,配置文件的增加非常快,每个bean有需要两个bean配置,一个目标,另外还需要使用TransactionProxyFactoryBean配置一个代理bean。
这是一种最原始的配置方式,下面是使用TransactionProxyFactoryBean的配置文件:
Xml代码
<?xmlversion="1.0"encoding="gb2312"?>
<!--Spring配置文件的文件头,包含DTD等信息-->
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定义数据源-->
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--定义数据库驱动-->
<propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<!--定义数据库url-->
<propertyname="url"><value>jdbc:mysql://localhost:3306/spring</value></property>
<!--定义数据库用户名-->
<propertyname="username"><value>root</value></property>
<!--定义数据库密码-->
<propertyname="password"><value>32147</value></property>
</bean>
<!--定义一个hibernate的SessionFactory-->
<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--定义SessionFactory必须注入DataSource-->
<propertyname="dataSource"><reflocal="dataSource"/></property>
<propertyname="mappingResources">
<list>
<!--以下用来列出所有的PO映射文件-->
<value>Person.hbm.xml</value>
</list>
</property>
<propertyname="hibernateProperties">
<props>
<!--此处用来定义hibernate的SessionFactory的属性:
不同数据库连接,启动时选择create,update,create-drop-->
<propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<propkey="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<!--定义事务管理器,使用适用于Hibernte的事务管理器-->
<beanid="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!--HibernateTransactionManagerbean需要依赖注入一个SessionFactorybean的引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/></property>
</bean>
<!--定义DAOBean,作为事务代理的目标-->
<beanid="personDaoTarget"class="lee.PersonDaoHibernate">
<!--为DAObean注入SessionFactory引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/></property>
</bean>
<!--定义DAObean的事务代理-->
<beanid="personDao"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!--为事务代理bean注入事务管理器-->
<propertyname="transactionManager"><refbean="transactionManager"/></property>
<!--设置事务属性-->
<propertyname="transactionAttributes">
<props>
<!--所有以find开头的方法,采用required的事务策略,并且只读-->
<propkey="find*">PROPAGATION_REQUIRED,readOnly</prop>
<!--其他方法,采用required的事务策略->
<propkey="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<!--为事务代理bean设置目标bean-->
<propertyname="target">
<reflocal="personDaoTarget"/>
</property>
</bean>
</beans>
在上面的配置文件中,personDao需要配置两个部分,一个是personDao的目标bean,该目标bean是实际DAObean,以实际的DAObean为目标,建立事务代理。一个组件,需要来个bean组成,一个目标bean,一个事务代理。
这种配置方式还有一个坏处:目标bean直接暴露在Spring容器中,可以直接引用,如果目标bean被误引用,将导致业务操作不具备事务性。
为了避免这种现象,可将目标bean配置成嵌套bean,下面是目标bean和事务代理的配置片段:
Xml代码
<!--定义DAObean的事务代理-->
<beanid="personDao"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!--为事务代理bean注入事务管理器-->
<propertyname="transactionManager"><refbean="transactionManager"/></property>
<!--设置事务属性-->
<propertyname="transactionAttributes">
<props>
<!--所有以find开头的方法,采用required的事务策略,并且只读-->
<propkey="find*">PROPAGATION_REQUIRED,readOnly</prop>
<!--其他方法,采用required的事务策略->
<propkey="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<!--为事务代理bean设置目标bean-->
<propertyname="target">
<!--采用嵌套bean配置目标bean-->
<beanclass="lee.PersonDaoHibernate">
<!--为DAObean注入SessionFactory引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/></property>
</bean>
</property>
</bean>
这是一种最原始的配置方式,下面是使用TransactionProxyFactoryBean的配置文件:
Xml代码
<?xmlversion="1.0"encoding="gb2312"?>
<!--Spring配置文件的文件头,包含DTD等信息-->
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--定义数据源-->
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--定义数据库驱动-->
<propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<!--定义数据库url-->
<propertyname="url"><value>jdbc:mysql://localhost:3306/spring</value></property>
<!--定义数据库用户名-->
<propertyname="username"><value>root</value></property>
<!--定义数据库密码-->
<propertyname="password"><value>32147</value></property>
</bean>
<!--定义一个hibernate的SessionFactory-->
<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!--定义SessionFactory必须注入DataSource-->
<propertyname="dataSource"><reflocal="dataSource"/></property>
<propertyname="mappingResources">
<list>
<!--以下用来列出所有的PO映射文件-->
<value>Person.hbm.xml</value>
</list>
</property>
<propertyname="hibernateProperties">
<props>
<!--此处用来定义hibernate的SessionFactory的属性:
不同数据库连接,启动时选择create,update,create-drop-->
<propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<propkey="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<!--定义事务管理器,使用适用于Hibernte的事务管理器-->
<beanid="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!--HibernateTransactionManagerbean需要依赖注入一个SessionFactorybean的引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/></property>
</bean>
<!--定义DAOBean,作为事务代理的目标-->
<beanid="personDaoTarget"class="lee.PersonDaoHibernate">
<!--为DAObean注入SessionFactory引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/></property>
</bean>
<!--定义DAObean的事务代理-->
<beanid="personDao"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!--为事务代理bean注入事务管理器-->
<propertyname="transactionManager"><refbean="transactionManager"/></property>
<!--设置事务属性-->
<propertyname="transactionAttributes">
<props>
<!--所有以find开头的方法,采用required的事务策略,并且只读-->
<propkey="find*">PROPAGATION_REQUIRED,readOnly</prop>
<!--其他方法,采用required的事务策略->
<propkey="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<!--为事务代理bean设置目标bean-->
<propertyname="target">
<reflocal="personDaoTarget"/>
</property>
</bean>
</beans>
在上面的配置文件中,personDao需要配置两个部分,一个是personDao的目标bean,该目标bean是实际DAObean,以实际的DAObean为目标,建立事务代理。一个组件,需要来个bean组成,一个目标bean,一个事务代理。
这种配置方式还有一个坏处:目标bean直接暴露在Spring容器中,可以直接引用,如果目标bean被误引用,将导致业务操作不具备事务性。
为了避免这种现象,可将目标bean配置成嵌套bean,下面是目标bean和事务代理的配置片段:
Xml代码
<!--定义DAObean的事务代理-->
<beanid="personDao"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!--为事务代理bean注入事务管理器-->
<propertyname="transactionManager"><refbean="transactionManager"/></property>
<!--设置事务属性-->
<propertyname="transactionAttributes">
<props>
<!--所有以find开头的方法,采用required的事务策略,并且只读-->
<propkey="find*">PROPAGATION_REQUIRED,readOnly</prop>
<!--其他方法,采用required的事务策略->
<propkey="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<!--为事务代理bean设置目标bean-->
<propertyname="target">
<!--采用嵌套bean配置目标bean-->
<beanclass="lee.PersonDaoHibernate">
<!--为DAObean注入SessionFactory引用-->
<propertyname="sessionFactory"><reflocal="sessionFactory"/></property>
</bean>
</property>
</bean>
相关文章推荐
- LINUX开源监控平台Nagios(警告功能配置)
- LINUX开源监控平台Nagios(NRPE的安装配置)
- LINUX开源监控平台Nagios(NRPE的安装配置)
- LINUX开源监控平台Nagios(主机监控配置)
- LINUX开源监控平台Nagios(服务监控配置)
- LINUX开源监控平台Nagios(服务监控配置)
- LINUX开源监控平台Nagios(主机监控配置)
- LINUX开源监控平台Nagios(主机监控配置)
- LINUX开源监控平台Nagios(性能分析图表)
- LINUX开源监控平台Nagios(基本安装)
- LINUX开源监控平台Nagios(基本安装)
- LINUX开源监控平台Nagios(插件的安装和使用)
- LINUX开源监控平台Nagios(性能分析图表)
- LINUX开源监控平台Nagios(插件的安装和使用)
- 一起搭建linux监控平台之nagios(二)监控端环境部署
- Nagios安装配置和基于NRPE监控远程Linux主机 推荐
- OpenNMS阀值、事件及警告配置笔记--开源监控软件
- Nagios监控平台之二:nrpe监控远程Linux主机
- Linux下nginx+nagios 监控平台搭建
- 一起搭建linux监控平台之nagios(三)被监控端的环境部署