ssm框架的簡單搭建
阿新 • • 發佈:2019-01-25
最近在maven下使用ssm框架(spring,springMVC,mybatis)進行練習,在這裡就簡單總結一下一個ssm框架的基本搭建過程。
- 在這裡你首先要建立一個maven專案
在建立過程中你要注意在這裡新增一個引數archetypeCatalog=internal , 如果你沒有新增這個引數,在maven生成骨架的時候會非常慢,有時候甚至會卡住。archetypeCatalog表示外掛使用的archetype元資料,不加這個引數時預設為remote,local,即中央倉庫archetype元資料,由於中央倉庫的archetype太多了,所以導致很慢,指定為internal就表示僅使用內部元資料。
2.在建立好maven專案後,建立好自己的專案結構
3.修改pom.xml檔案,
因為使用maven管理專案,所以可以通過pom.xml來直接匯入jar包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion >
<groupId>com.web.oj</groupId>
<artifactId>com.web.ojtest</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>com.web.ojtest Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties >
<!-- spring版本號 -->
<spring.version>4.2.2.RELEASE</spring.version>
<!-- mybatis版本號 -->
<mybatis.version>3.2.8</mybatis.version>
<!-- log4j日誌檔案管理包版本 -->
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.9</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<!-- junit測試包 -->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 阿里巴巴資料來源包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.2</version>
</dependency>
<!-- spring核心包 -->
<!-- springframe start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- springframe end -->
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql驅動包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!-- json資料 -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 日誌檔案管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<finalName>com.web.ojtest</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
<resources>
<!--表示把java目錄下的有關xml檔案,properties檔案編譯/打包的時候放在resource目錄下-->
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
</resources>
</build>
</project>
4.配置好你的jdbc.properties配置檔案
5.配置spring-MVC.xml
通過配置spring-MVC.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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<import resource="classpath:config/spring-mybatis.xml" />
<!--啟用spring的一些annotation -->
<context:annotation-config/>
<!-- 引入jdbc配置檔案 -->
<context:property-placeholder location="classpath:config/jdbc.properties"/>
<!-- 自動掃描該包,使SpringMVC認為包下用了@controller註解的類是控制器 -->
<context:component-scan base-package="com.web.controller">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 自動掃描該包,使SpringMVC認為包下用了@service註解的類是邏輯器 -->
<context:component-scan base-package="com.web.serviceImpl">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
</context:component-scan>
<!-- 自動掃描該包,使SpringMVC認為包下用了@repository註解的類是dao -->
<context:component-scan base-package="com.web.dao">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<!--HandlerMapping 無需配置,springmvc可以預設啟動-->
<!--靜態資源對映-->
<!--本專案把靜態資源放在了WEB-INF的statics目錄下,資源對映如下,html檔案也屬於靜態資源-->
<mvc:resources mapping="/css/**" location="/statics/css/"/>
<mvc:resources mapping="/font/**" location="/statics/font/"/>
<mvc:resources mapping="/js/**" location="/statics/js/"/>
<mvc:resources mapping="/images/**" location="/statics/images/"/>
<mvc:resources mapping="/views/**" location="/views/"/>
<!--但是專案部署到linux下發現WEB-INF的靜態資源會出現無法解析的情況,但是本地tomcat訪問正常,因此建議還是直接把靜態資源放在webapp的statics下,對映配置如下-->
<!--<mvc:resources mapping="/css/**" location="/statics/css/"/>-->
<!--<mvc:resources mapping="/js/**" location="/statics/js/"/>-->
<!--<mvc:resources mapping="/images/**" location="/statics/images/"/>-->
<!-- 配置註解驅動 可以將request引數與繫結到controller引數上 -->
<mvc:annotation-driven/>
<!-- 對模型檢視名稱的解析,即在模型檢視名稱新增前後綴(如果最後一個還是表示資料夾,則最後的斜槓不要漏了) 使用JSP-->
<!-- 預設的檢視解析器 在上邊的解析錯誤時使用 (預設使用html)- -->
<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/views/"/><!--設定JSP檔案的目錄位置--> <!--指定字首-->
<property name="suffix" value=".jsp"/> <!--指定字尾-->
</bean>
<!-- springmvc檔案上傳需要配置的節點-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="20971500"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="resolveLazily" value="true"/>
</bean>
</beans>
6.配置spring-Mybatis.xml
通過對這個檔案的配置,可以簡化所有的資料庫操作,只需要通過寫基本的sql語句就可以通過配置來操作對應的資料庫。
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--定義一個使用dbcp實現的資料來源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
destroy-method="close" >
<property name="driverClassName">
<value>${jdbc_driverClassName}</value>
</property>
<property name="url">
<value>${jdbc_url}</value>
</property>
<property name="username">
<value>${jdbc_username}</value>
</property>
<property name="password">
<value>root</value>
</property>
<!-- 連線池最大使用連線數 -->
<property name="maxActive">
<value>20</value>
</property>
<!-- 初始化連線大小 -->
<property name="initialSize">
<value>1</value>
</property>
<!-- 獲取連線最大等待時間 -->
<property name="maxWait">
<value>60000</value>
</property>
<!-- 連線池最大空閒 -->
<property name="maxIdle">
<value>20</value>
</property>
<!-- 連線池最小空閒 -->
<property name="minIdle">
<value>3</value>
</property>
<!-- 自動清除無用連線 -->
<property name="removeAbandoned">
<value>true</value>
</property>
<!-- 清除無用連線的等待時間 -->
<property name="removeAbandonedTimeout">
<value>180</value>
</property>
<!-- 連線屬性 -->
<property name="connectionProperties">
<value>clientEncoding=UTF-8</value>
</property>
</bean>
<!-- mybatis檔案配置,掃描所有mapper檔案 -->
<!--定義資料來源所要注入使用的bean-->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dataSource"
p:configLocation="classpath:config/mybatis-config.xml"
p:mapperLocations="classpath:mapper/*.xml"/><!-- configLocation為mybatis屬性 mapperLocations為所有mapper-->
<!-- spring與mybatis整合配置,掃描所有dao -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
p:basePackage="com.web.dao"
p:sqlSessionFactoryBeanName="sqlSessionFactory"/>
<!-- 配置事物管理器對資料來源進行事務管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource"/>
</beans>
7.配置mybatis-config.xml
在這裡為你的java bean 命名
<?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>
<!-- 名稱空間 -->
<typeAliases>
<typeAlias alias="list" type="java.util.List"/>
<typeAlias alias="Problem" type="com.web.entity.Problem"/>
</typeAliases>
<!-- 對映map -->
<mappers>
</mappers>
</configuration>
8.修改web.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!--welcome pages-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 監聽器配置 -->
<listener>
<listener-class>com.web.listener.ContextLoaderListener</listener-class>
</listener>
<!-- 引入框架 must -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-MVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 設定字元編碼 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
到這裡一個基本的ssm框架就搭建好了。使用ssm框架可以使我們寫程式的過程更加方便簡潔,提高效率。