spring配置文件详解(applicationContext.xml)

上次在开发时遇到创建的新路径下的model类在部署时不能与数据库表映射的问题,找到原因是在applicationContext.xml文件中没有添加我新创建的路径,所以spring找不到我的model类,也就无法完成部署。
这里说一下applicationContext的文件详解。
从上到下

<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:database.properties</value>
                <value>classpath:wssuap.properties</value>
                <value>classpath:application.properties</value>
            </list>
        </property>
    </bean>

我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${…}value)。
接着是数据源:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
        <property name="driverClassName" value="${hibernate.connection.driver_class}"/>
        <property name="url" value="${hibernate.connection.url}"/>
        <property name="username" value="${hibernate.connection.username}"/>
        <property name="password" value="${hibernate.connection.password}"/>   
        <property name="maxActive" value="${hibernate.connection.maxActive}" />  
        <property name="maxIdle" value="${hibernate.connection.maxIdle}" />  
        <property name="maxWait" value="${hibernate.connection.maxWait}" />  
        <property name="removeAbandoned" value="${hibernate.connection.removeAbandoned}"/>  
        <property name="removeAbandonedTimeout" value="${hibernate.connection.removeAbandonedTimeout}"/>  
        <property name="logAbandoned" value="${hibernate.connection.logAbandoned}"/> 
    </bean>

我的工程中数据源的配置在database.properties文件中,修改数据库连接设置可以在里面操作。
然后是session工厂

<bean id="sessionFactory"
        class="com.wondersgroup.framework.core5.dao.support.EnhancedAnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation"
            value="classpath:hibernate.cfg.xml" />
        <!-- dir location should be set here if *.hbm.xml exsited in the current project-->
        <property name="mappingDirectoryLocations">
            <list>
                <!--<value>classpath:/com/wondersgroup/wssip/bc</value>comment-->
            </list>
        </property>
        <!-- any jar with zipping *.hbm.xml should be set here(for junit and deployment respectively) -->
        <property name="mappingJarLocations">
            <list>
                <!-- for Deployment Environment -->
                <!-- 
                    <value>WEB-INF/lib/cuteframework-core-4.1-SNAPSHOT.jar</value>
                    <value>WEB-INF/lib/cuteframework-security-4.0.jar</value>
                    <value>WEB-INF/lib/cuteframework-appmgr-4.0.jar</value>
                    <value>WEB-INF/lib/wsscclib-rollback-1.0-SNAPSHOT.jar</value>
                -->
            </list>
        </property>
        <property name="annotatedPackagePrefixes">
            <list>
                <value>com.wondersgroup.wssuap</value>
                <value>com.wondersgroup.hzrsmh.wssip</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    ${hibernate.dialect}
                </prop>
            </props>
        </property>
        <property name="lobHandler" ref="${jdbc.handler}" />
    </bean>

查找资料找到sessionFactory的作用,粘贴过来:
SessionFactory:
1,用于管理Hibernate会话(session)的对象,所以,最最最简单的理解,你可以把sessionFactory想想成里面有一个DataSource;
2,这个对象创建了,hibernate才真正和数据库连接上了。即SessionFactory维护着所有连接对象已经连接对象的分配和销毁;
3,SessionFactory是线程安全的,并且创建和销毁需要消耗比较大的资源,所以整个应用里面针对一个数据库只需要一个SessionFactory即可;
4,SessionFactory管理着配置在其中的映射对象的解析数据,动作监听器,NamedQuery等大量信息;
5,SessionFactory里面有一个二级缓存,可以提供更大生命周期的缓存策略;
我靠markdown出bug了,暂时写到这。。
1     
2      
3                   

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
applicationContext.xmlSpring Framework 的配置文件,用来定义和配置应用程序中的 Bean 和它们之间的关系。 在 applicationContext.xml 文件中,可以定义各种不同类型的 Bean,包括普通的 Java 类、Spring 框架提供的类,以及第三方库提供的类。通过配置文件,可以指定这些 Bean 的作用域、依赖关系、属性和方法等。 在 applicationContext.xml 文件中,可以使用 `<bean>` 元素来定义一个 Bean。每个 `<bean>` 元素代表着一个对象,通过指定类的全名或者引用已经存在的 Bean,可以创建出一个具体的实例。 同时,可以在 `<bean>` 元素中使用各种不同的属性来定制 Bean 的行为。例如,可以使用 `scope` 属性指定 Bean 的作用域,如 singleton(单例)、prototype(原型)等;可以使用 `autowire` 属性来自动装配相关的 Bean,简化依赖注入的配置;可以使用 `init-method` 和 `destroy-method` 属性指定 Bean 的初始化和销毁方法。 在 applicationContext.xml 文件中,还可以使用 `<property>` 元素来设置 Bean 的属性。通过指定属性名称和值,可以向 Bean 注入相应的值。另外,还可以使用 `<constructor-arg>` 元素设置构造函数的参数。 除了 `<bean>` 元素和相关属性之外,applicationContext.xml 文件中还可以包含一些特殊的元素,如 `<import>`、`<alias>` 等,用来管理配置文件的结构和组织。 总结来说,applicationContext.xmlSpring Framework 的主要配置文件之一,通过它可以灵活地定义和配置应用程序中的 Bean。它提供了丰富的配置选项,方便开发者通过简单的配置实现复杂的功能。同时,它还可以通过注入和自动装配等特性,简化应用程序的开发和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值