读书人

研究公司ssh项目Tomcat起动后都干什

发布时间: 2013-07-01 12:33:04 作者: rapoo

研究公司ssh项目Tomcat启动后,都干什么了
本帖最后由 aaameimei 于 2013-06-08 22:58:39 编辑 web.xml中的listerner

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<listener>
<listener-class>
com.hollycrm.service.message.web.listener.CacheClearSessionListener
</listener-class>
</listener>
<listener>
<listener-class>
com.hollycrm.service.license.LimitClearSessionListener
</listener-class>
</listener>
<listener>
<listener-class>
com.hollycrm.service.system.security.web.listener.LogoutSessionListener
</listener-class>
</listener>
<!---->
<listener>
<listener-class>
com.hollycrm.service.license.PermissionStartupContextLoader
</listener-class>
</listener>
按照我理解思路是这几个listener执行完才轮到其他的执行。
第一个listerner应该是加载application.xml,
application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<!--http://www.springframework.org/dtd/
- Application context definition for Petclinic on Hibernate.
-->
<beans>
<!-- ========================= GENERAL DEFINITIONS ========================= -->
<!-- Configurer that replaces ${...} placeholders with values from a properties file -->
<!-- (in this case, JDBC-related settings for the dataSource definition below) -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/configure.properties</value>
<value>/global.properties</value>
<value>/plugins.properties</value>
</list>
</property>
</bean>
<!-- Message source for this context, loaded from localized "messages_xx" files -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
<!-- ========================= RESOURCE DEFINITIONS ========================= -->
<!-- Local DataSource that works in any environment -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>

<!-- JNDI DataSource for J2EE environments -->
<!--
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>${jdbc.dataSource}</value>
</property>
</bean>
-->
<!-- UserTransaction for J2EE environments -->


<bean id="userTransaction" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<!-- configure for WebLogic
<value>javax.transaction.TransactionManager</value>
-->
<!-- configure for WebSphere -->
<value>${jta.userTransaction}</value>
</property>
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>/com/hollycrm/service/code/hibernate/GeneralCode.hbm.xml</value>
<value>/com/hollycrm/service/dbaccesslog/hibernate/DBAccessLog.hbm.xml</value>
<value>/com/hollycrm/service/idgenerator/vo/Series.hbm.xml</value>
<value>/com/hollycrm/service/idgenerator/vo/CurrentMax.hbm.xml</value>
<!--<value>/com/hollycrm/service/system/dictionary/unite/Dictionary.hbm.xml</value>-->

</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</prop>
<!-- configure for WebLogic
<prop key="jta.UserTransaction">javax/transaction/UserTransaction</prop>
<prop key="hibernate.transaction.manager_lookup_class">net.sf.hibernate.transaction.WeblogicTransactionManagerLookup</prop>
-->
<!-- configure for WebSphere -->
<prop key="jta.UserTransaction">${jta.userTransaction}</prop>
<prop key="hibernate.transaction.manager_lookup_class">${hibernate.transaction.manager_lookup_class}</prop>
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>

<!-- Transaction manager that delegates to JTA (for a transactional JNDI DataSource)


<bean id="JtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
-->
<!-- ========================= INITIAL BEAN DEFINITIONS ========================= -->
<!--
<bean id="pilot" class="com.hollycrm.framework.web.servlet.ContextLoaderServlet.SimpleNestedBean">
<property name="beanName">
<value>Happy Flying Snow! (-;</value>
</property>
</bean>
-->
<!-- ========================= DB ACCESS LOG Hibernate Template Interceptor ========================= -->
<!-- dependency dbaccesslog module -->
<!--
<bean id="hibernateTemplateInterceptor" class="com.hollycrm.service.dbaccesslog.hibernate.HibernateTemplateInterceptor">
<property name="logEnable">
<value>false</value>
</property>
</bean>
-->
<bean id="hibernateTemplateTarget" class="org.springframework.orm.hibernate.HibernateTemplate" singleton="false">
<constructor-arg>
<ref local="sessionFactory"/>
</constructor-arg>
</bean>
<bean id="hibernateTemplate" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<list>
<value>hibernateTemplateInterceptor</value>
<value>hibernateTemplateTarget</value>
</list>
</property>
</bean>
<!-- ========================= UTILITIES OBJECT DEFINITIONS ========================= -->
<!-- simple date format year to second -->
<bean id="dateFormatYear2second" class="java.text.SimpleDateFormat">
<constructor-arg>
<value>yyyy-MM-dd HH:mm:ss</value>
</constructor-arg>
</bean>
<!-- simple date format year to second -->
<bean id="dateFormatYear2day" class="java.text.SimpleDateFormat">
<constructor-arg>
<value>yyyy-MM-dd</value>
</constructor-arg>
</bean>
<!-- simple date format hour for 24 -->
<bean id="dateFormatHH" class="java.text.SimpleDateFormat">
<constructor-arg>
<value>HH</value>
</constructor-arg>
</bean>
<!-- UUID Generator -->
<bean id="uuidGenerator" class="com.hollycrm.framework.util.HibernateUUIDHexGeneratorProxyBean"/>

</beans>


难道这里面的bean会随Tomcat启动一起执行吗?,因为在执行web.xml的servlet的时候,hibernate已经执行了,所以我觉得这里面的数据库事务一定也是已经最先先执行了的。
spring理解不多,希望有大哥们给普及一下知识,看看这application.xml的那些会在”Loading Spring root WebApplicationContext“过程中执行的。

小弟再次拜谢!!!

PS:我觉得我的问题出在不清楚spring的application.xml的数据源是在什么时候第一次连接使用的


[解决办法]
这些不就是
Loading Spring root WebApplicationContext
执行的过程吗?

读书人网 >J2EE开发

热点推荐