hibernate持久层配置,shiro安全框架,ecache缓存和任务调度的配置
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://cxf.apache.org/bindings/soap
http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
">
<!-- 加载属性文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"/>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 配置LocalSessionFactoryBean,spring提供的用于整合hibernate的工厂bean -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 注入hibernate相关的属性配置 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<!-- 注入hibernate的映射文件 -->
<property name="mappingLocations">
<list>
<value>classpath:com/itheima/bos/domain/*.xml</value>
</list>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 组件扫描 -->
<context:component-scan base-package="com.itheima.bos"/>
<!-- 支持spring注解 -->
<context:annotation-config/>
<!-- 支持事务注解 -->
<tx:annotation-driven/>
<!-- 注册crm客户端代理对象 -->
<jaxws:client id="crmClient"
serviceClass="cn.heima.crm.service.CustomerService"
address="http://localhost:8080/crm_webservice/service/customer"/>
<!-- 配置shiro框架的过滤器工厂对象-->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- 注入安全管理器对象-->
<property name="securityManager" ref="securityManager"></property>
<!-- 注入相关页面访问url-->
<property name="loginUrl" value="/login.jsp"></property>
<property name="successUrl" value="/index.jsp"></property>
<property name="unauthorizedUrl" value="/unauthorized.jsp"></property>
<!--
注入url拦截规则
-->
<property name="filterChainDefinitions">
<value>
/css/**=anon
/js/**=anon
/images/**=anon
/validatecode.jsp*=anon
/login.jsp=anon
/userAction_login.action=anon
/page_base_staff.action=perms["staff.list"]
/*=authc
</value>
</property>
</bean>
<!-- 注册安全管理器对象-->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="bosRealm"></property>
<!-- 注入缓存管理器-->
<property name="cacheManager" ref="cacheManager"></property>
</bean>
<!-- 注册缓存管理器 -->
<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
<!-- 注入ehcache的配置文件 -->
<property name="cacheManagerConfigFile" value="classpath:ehcache.xml"/>
</bean>
<!-- 注册Realm-->
<bean id="bosRealm" class="com.itheima.bos.realm.BosRealm"></bean>
<!-- 开启shiro注解支持-->
<bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
<!-- 必须使用cglib方式为action创建代理对象-->
<property name="proxyTargetClass" value="true"></property>
</bean>
<!-- 配置shiro框架提供的切面类,用于创建代理对象-->
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"></bean>
<!-- 配置自定义邮件作业对象,注入发件人用户名,密码,服务地址-->
<!-- 注册自定义作业类-->
<bean id="mailJob" class="com.itheima.bos.job.MailJob">
<property name="username" value="962202481@qq.com"></property>
<property name="password" value="sdlkvfpicjpxbbch"></property>
<property name="smtpServer" value="smtp.qq.com"></property>
</bean>
<!-- 配置作业详情JobDetail-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 注入目标对象 -->
<property name="targetObject" ref="mailJob"></property>
<!-- 注入目标方法-->
<property name="targetMethod" value="execute"></property>
</bean>
<!-- 配置触发器-->
<bean id="mailTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- 注入任务详情对象-->
<property name="jobDetail" ref="jobDetail"></property>
<!-- 注入层cron表达式-->
<property name="cronExpression">
<value>0 12 22 22 8 ? *</value>
</property>
</bean>
<!-- 配置调度工厂-->
<bean id="schedulerFactoryBeanS" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 注入触发器-->
<property name="triggers">
<list>
<ref bean="mailTrigger"/>
</list>
</property>
</bean>
</beans>
|
|