SSM框架搭建(配置文件)

pom文件(引入依赖包)

	<dependencies>
		<!-- 作为一个基本的web项目,Servlet API必不可少 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- Spring 核心包 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<!-- Spring web 扩展包,用于web环境下的IOC容器使用 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<!-- Spring web MVC 框架功能 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<!-- mybatis核心包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.5</version>
		</dependency>
		<!-- mybatis-spring整合 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.2</version>
		</dependency>
		<!-- 数据源 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.10</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.3.13.RELEASE</version>
		</dependency>
		<!-- mysql的驱动 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.35</version>
		</dependency>
		<!-- Gson 转化工具 -->
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.8.1</version>
		</dependency>
		<!-- jstl标签 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!-- AOP 功能 -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.13</version>
		</dependency>
		<!-- 上传下载 -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<!-- 加入shiro依赖 -->
		   <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>1.3.2</version>
        </dependency>
			 <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
             <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
             <version>1.3.2</version>
        </dependency> 
		<!-- 单元测试 -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<!-- 打印日志 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.22</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.22</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>JiuDingHaoPai</finalName>
	</build>

web.xml文件

	<!-- 加载spring文件夹下的其余配置文件 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
		classpath:spring.xml,classpath:shiro.xml
	</param-value>
	</context-param>
	<!--自动装配配置信息 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- 加载SpringMVC的配置文件 -->
	<servlet>
		<servlet-name>SpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value></param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>SpringMVC</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

	<!-- 跨域请求 -->
	<filter>
		<filter-name>SimpleCORSFilter</filter-name>
		<filter-class>qiangduanyang.controller.other.SimpleCORSFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>SimpleCORSFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- 防止中文乱码 -->
	<filter>
		<description>字符集过滤器</description>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<description>字符集编码</description>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- shiro过滤器 -->
	<filter>
		<filter-name>shiroFilter</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
		<init-param>
			<param-name>targetFilterLifecycle</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<!-- 确保任何您希望Shiro访问的请求都经过了过滤。/ *捕获所有 -->
	<!-- 请求。通常这个过滤器映射首先被定义(在所有其他映射之前) -->
	<!-- 确保Shiro在过滤器链中的后续过滤器中工作 -->
	<filter-mapping>
		<filter-name>shiroFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- session过期时间 -->
	<session-config>
        <session-timeout>120</session-timeout>
    </session-config>
	
	<!-- 欢迎页面 -->
	<welcome-file-list>
		<welcome-file>login.html</welcome-file>
	</welcome-file-list>

	<!-- shiro未授权页面 -->
	<error-page>
		<exception-type>org.apache.shiro.authz.UnauthorizedException</exception-type>
		<location>/unauthorized.jsp</location>
	</error-page>

spring.xml

	<!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/view/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
	<!-- Enable Shiro Annotations for Spring-configured beans. Only run after -->
	<!-- the lifecycleBeanProcessor has run: -->
	<bean
		class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
		depends-on="lifecycleBeanPostProcessor" />
	<bean
		class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
		<property name="securityManager" ref="securityManager" />
	</bean>

	<!-- 开启MVC注解驱动 -->
	<mvc:annotation-driven></mvc:annotation-driven>
	
	<!-- 开启AOP功能 -->
	<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
	
	<!-- 定时任务 -->
	<task:annotation-driven/>
	
	<!-- 静态资源不交由DispatcherServlet -->
	<mvc:default-servlet-handler />
	
	<!-- Gson 工具实例化 -->
	<bean id="gson" class="com.google.gson.Gson"></bean>
	
	<!-- IOC容器自动化扫描,处理控制器和服务层 -->
	<context:component-scan base-package="qiangduanyang.controller.*"></context:component-scan>
	<context:component-scan base-package="qiangduanyang.service.*"></context:component-scan>
	<context:component-scan base-package="qiangduanyang.task.*"></context:component-scan>
	<context:component-scan base-package="qiangduanyang.aop.*"></context:component-scan>
	
	<!--  Spring 自带数据源 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost/erp_system?useUnicode=true&amp;characterEncoding=utf-8" />
		<property name="username" value="root" />
		<property name="password" value="123" />	
	</bean>	
	
	<!-- 整合Mybatis,配置sqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- 配置mapper映射文件地址 -->
		<property name="mapperLocations" value="classpath:qiangduanyang/mapper/system/*.xml" />
		<!-- 配置全局配置文件地址 -->
		<property name="configLocation" value="classpath:mybatis.xml"></property>
	</bean>
	
	<!-- 配置mapper的接口地址 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="qiangduanyang.dao.system" />
	</bean>
	
	<!-- 定义事物 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
		
	<!-- 开启事物注解驱动 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>

另一种数据源:druid

  1. 数据库配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/sys_exam?useUnicode=true&amp;characterEncoding=UTF8&amp;rewriteBatchedStatements=true
user=root
password=123
  1. 数据源配置
	<context:property-placeholder location="classpath:db.properties" />

	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		init-method="init" destroy-method="close">
		<!-- 基本属性 url、user、password -->
		<property name="driverClassName" value="${driver}" />
		<property name="url" value="${url}" />
		<property name="username" value="${user}" />
		<property name="password" value="${password}" />

		<!-- 配置监控统计拦截的filters -->
		<property name="filters" value="stat" />

		<!-- 配置初始化大小、最小、最大 -->
		<property name="maxActive" value="20" />
		<property name="initialSize" value="1" />
		<property name="minIdle" value="1" />

		<!-- 配置获取连接等待超时的时间 -->
		<property name="maxWait" value="60000" />

		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="60000" />

		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="300000" />

		<property name="testWhileIdle" value="true" />
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />

		<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
		<property name="poolPreparedStatements" value="true" />
		<property name="maxOpenPreparedStatements" value="20" />
	</bean>

mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 全局参数 -->
	<settings>
		<!-- 使全局的映射器启用或禁用缓存。 -->
		<setting name="cacheEnabled" value="true" />
		<!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 -->
		<setting name="lazyLoadingEnabled" value="true" />
		<!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->
		<setting name="aggressiveLazyLoading" value="false" />
		<!-- 是否允许单条sql 返回多个数据集 (取决于驱动的兼容性) default:true -->
		<setting name="multipleResultSetsEnabled" value="true" />
		<!-- 是否可以使用列的别名 (取决于驱动的兼容性) default:true -->
		<setting name="useColumnLabel" value="true" />
		<!-- 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 default:false -->
		<setting name="useGeneratedKeys" value="false" />
		<!-- 指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分 FULL:全部 -->
		<setting name="autoMappingBehavior" value="PARTIAL" />
		<!-- 这是默认的执行类型 (SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 
			执行器可以重复执行语句和批量更新) -->
		<setting name="defaultExecutorType" value="SIMPLE" />
		<!-- 使用驼峰命名法转换字段。 -->
		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
		<!-- 设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session -->
		<setting name="localCacheScope" value="SESSION" />
		<!-- 设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型 -->
		<setting name="jdbcTypeForNull" value="NULL" />

	</settings>

</configuration>

shiro.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<!-- shiro过滤器 -->
	<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
		<property name="securityManager" ref="securityManager" />
		<property name="filterChainDefinitions">
			<value>
				# some example chain definitions:
				<!-- #authc认证后可以访问的页面
				/login/**=anon 不用认证就可以访问 -->
				/**=anon
				<!-- /** = authc -->
			</value>
		</property>
	</bean>

	<!-- 配置 SecurityManager -->
	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
		<property name="realm" ref="myRealm" />
	</bean>
	
	<!-- 管理shiro bean生命周期 -->
	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />

	<!-- security datasource: -->
	<bean id="myRealm" class="qiangduanyang.utils.system.MyRealm">

	</bean>
</beans>

generatorConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
	<!-- 配置驱动,注意修改路径 -->
	<classPathEntry
		location="C:\Users\Administrator\Desktop\developmentEnvironment\Jar\mysql-connector-java-5.1.13" />
	<context id="context1">
		<commentGenerator>
			<property name="suppressDate" value="true" />
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
       <!-- 配置驱动,注意修改数据库链接参数 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://192.168.7.171/erp_system?characterEncoding=utf-8"
			userId="qiangduanyang" password="123" />
		<!-- 生成实体类 实体bean文件,注意修改文件名 -->
		<javaModelGenerator
			targetPackage="qiangduanyang.model.system" targetProject="JiuDingHaoPai" />
		<!-- mapper xml文件 -->
		<sqlMapGenerator targetPackage="qiangduanyang.mapper.system"
			targetProject="JiuDingHaoPai" />
		<!-- mapper 接口文件,注意修改表名和生成类名 -->
		<javaClientGenerator
			targetPackage="qiangduanyang.dao.system" targetProject="JiuDingHaoPai"
			type="XMLMAPPER" />

		<table tableName="sys_assets_count" domainObjectName="AssetsCount"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>	
	</context>
</generatorConfiguration>

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="qiangduanyang.dao.system.SigninMapper">
  <resultMap id="signinRecord" type="qiangduanyang.pojo.system.SigninRecord">
    <id column="signin_id" jdbcType="INTEGER" property="signinId" />
    <result column="signin_staff_id" jdbcType="VARCHAR" property="signinStaffId" />
    <result column="staff_name" jdbcType="VARCHAR" property="signinStaffName" />
    <result column="signin_in_time" jdbcType="VARCHAR" property="signinInTime" />
    <result column="signin_out_time" jdbcType="VARCHAR" property="signinOutTime" />
    <result column="signin_state" jdbcType="VARCHAR" property="signinState" />
    <association property="depart" javaType="qiangduanyang.model.system.Depart">
   		<result column="depart_id" jdbcType="INTEGER" property="departId" />
    	<result column="depart_name" jdbcType="VARCHAR" property="departName" />
    </association>
    <collection property="departs" javaType="qiangduanyang.model.system.Departs">
   		<result column="depart_id" jdbcType="INTEGER" property="departId" />
    	<result column="depart_name" jdbcType="VARCHAR" property="departName" />
    </collection>
  </resultMap>
</mapper>

MyRealm

public class MyRealm extends AuthorizingRealm {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值