1. 程式人生 > >ssm框架的簡單搭建

ssm框架的簡單搭建

最近在maven下使用ssm框架(spring,springMVC,mybatis)進行練習,在這裡就簡單總結一下一個ssm框架的基本搭建過程。

  1. 在這裡你首先要建立一個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框架可以使我們寫程式的過程更加方便簡潔,提高效率。