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>

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>
	
	<!-- 開啓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 {
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章