81,092
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd"
default-lazy-init="true">
<description>Spring公共配置</description>
<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 -->
<context:component-scan base-package="com.dnake.cloudparking">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan>
<!-- Jpa Entity Manager 配置 -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
<property name="packagesToScan" value="com.dnake.cloudparking" />
<property name="jpaProperties">
<props>
<!-- 命名规则 My_NAME->MyName -->
<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.use_sql_comments">false</prop>
</props>
</property>
</bean>
<bean id="hibernateJpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform">
<bean factory-method="getDialect"
class="org.springside.modules.persistence.Hibernates">
<constructor-arg ref="dataSource" />
</bean>
</property>
</bean>
<!-- 支持上传文件 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
<!-- Spring Data Jpa配置 -->
<jpa:repositories base-package="com.dnake.cloudparking"
transaction-manager-ref="transactionManager"
entity-manager-factory-ref="entityManagerFactory" />
<!-- Jpa 事务配置 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<!-- jdbc注入 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="jdbcQueryDao" class="com.dnake.cloudparking.dao.JdbcQueryDao"/>
<!-- 配置事务通知属性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 定义事务传播属性 -->
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="list*" read-only="true" />
<tx:method name="page*" read-only="true" />
<tx:method name="read*" read-only="true" />
<tx:method name="save*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="update*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="delete*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="insert*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="add*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="start*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="deal*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="dual*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<tx:method name="commit*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
<!-- <tx:method name="*" read-only="true" />-->
<tx:method name="*" read-only="false" rollback-for="Exception"
propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 配置事务切面 -->
<aop:config>
<!-- 定义切入点:定义的包及其子包中定义的任意方法的执行 -->
<aop:pointcut id="serviceOperation"
expression="execution(* com.dnake.cloudparking.service..*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
</aop:config>
<!-- 更新非合作停车场剩余车位 -->
<bean id="parkingQuartzService" class="com.dnake.cloudparking.service.ParkingQuartzService"></bean>
<bean id="parkingQuartzBatch"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="parkingQuartzService" />
<property name="targetMethod" value="updateRemainParkNum" />
<property name="concurrent" value="false" /><!-- 指定最终封装出的任务是否有状态 -->
</bean>
<!-- 扫描的频率每隔5分钟执行一次 以隔repeatInterval时间的方式进行提交 -->
<bean id="parkingQuartzTaskBatch" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="startDelay" value="10000"/><!-- 服务启动10秒后执行 -->
<property name="repeatInterval" value="900000"/> <!-- 每隔15分钟执行一次 -->
<property name="jobDetail" ref="parkingQuartzBatch"/>
</bean>
<!-- 启动Bean -->
<!--Quartz-->
<bean id="schedulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="parkingQuartzTaskBatch" />
</list>
</property>
</bean>
<!-- JSR303 Validator定义 -->
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<!-- production环境 -->
<beans profile="production">
<context:property-placeholder
ignore-unresolvable="true" location="classpath:**/application.properties" />
<!-- 数据源配置, 使用Tomcat JDBC连接池 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
destroy-method="close">
<!-- Connection Info -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- Connection Pooling Info -->
<property name="maxActive" value="${jdbc.pool.maxActive}" />
<property name="maxIdle" value="${jdbc.pool.maxIdle}" />
<property name="defaultAutoCommit" value="false" />
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<property name="minEvictableIdleTimeMillis" value="60000" />
<property name="testWhileIdle" value="${jdbc.pool.testWhileIdle}" />
<property name="testOnBorrow" value="${jdbc.pool.testOnBorrow}" />
<property name="validationInterval" value="${jbdc.pool.validationInterval}" />
<property name="validationQuery" value="${jdbc.pool.validationQuery}" />
<property name="maxWait" value="${jdbc.pool.maxWait}" />
<property name="removeAbandonedTimeout" value="${jdbc.pool.removeAbandonedTimeout}" />
</bean>
<!-- 数据源配置,使用应用服务器的数据库连接池 -->
<!--
<jee:jndi-lookup id="dataSource"
jndi-name="java:comp/env/jdbc/ExampleDB" />
-->
</beans>
</beans>
<!-- Shiro's main business-tier object for web-enabled applications -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="shiroDbRealm" />
<property name="cacheManager" ref="shiroEhcacheManager" />
</bean>
<!-- 項目自定义的Realm, 所有accountService依赖的dao都需要用depends-on声明 -->
<bean id="shiroDbRealm" class="com.dnake.cloudparking.auth.AuthRealm">
<property name="userService" ref="userService" />
</bean>
<!--
<bean id="sessionFilter"
class="com.dnake.cloudparking.auth.SessionFilter"> </bean>
-->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/login" />
<property name="successUrl" value="/index" />
<!--
<property name="filters"> <map> <entry key="sessionFilter"
value-ref="sessionFilter"/> </map> </property>
-->
感觉问题可能出在哪。有什么思路没