1. 程式人生 > >SSM(ssm)心得體會之二構建簡單例項

SSM(ssm)心得體會之二構建簡單例項

今天我們用eclipse建立maven工程實現一個簡單的ssm樣例!

第一步:

新建maven專案

(注意在這一步我們選擇 maven-archetype-webapp)

建立完後你會發現專案報錯,那是因為缺少servlet-api編譯器無法識別jsp檔案

 

第二步:新增依賴

<!-- 第一步:新增javaee-api,他包含了servlet-api -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>8.0</version>
            <scope>provided</scope>
        </dependency>

新增完後項目就不會報錯了

 

第三步:完善maven的目錄結構

右鍵點選專案  Build Path-->Configure Build Path你會發現eclipse建立的maven工程目錄不全。

在naigator檔案形式目錄下完善目錄結構

 

第四步:修改jre版本

建立好的專案預設jre是1.5

通過配置pom檔案修改我們的jre版本

<plugins>
            <plugin>
                <!-- 制定java jre版本 -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

 </plugins>

(注意:我的是1.8版,您需要改成自己的版本)

新增好後更新maven專案

這個時候就將版本改成自己的了(這裡專案上報錯是eclipse自身的bug,好多次都是這樣,不影響執行)

之前找遍了整個專案屬性,發現是這裡出錯,之前的改好這個後就好了。沒找到原因也沒關係不影響專案。

 

第五步:新增ssm必須的依賴(在這個依賴上對於初學者而言,只要先複製這份正確的即可,後續再仔細研究。)

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.20.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.20.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.20.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.20.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.3</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.3</version>
        </dependency>


        <!-- Mybatis,jdbc-mysql,dbcp -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.5.0</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.10.0</version>
        </dependency>
 

新增好依賴後更新maven專案檢視一下jar包是否下載成功

 

第六步:在src/main/resouse 中建立 applicationContext.xml、mybatis-config.xml、mysql-jdbc.properties三個配置檔案

 

第七步:編輯mysql-jdbc.properties配置檔案

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://(你的ip地址):3306/hlrd?useSSL=false&useUnicode=true&characterEncoding=utf8
username=root
password=(你的資料庫連線密碼)
initSize=50(資料庫的初始化連線數)
maxActive=10 (資料庫的最大連線數)
maxIdle=10(最大等待連線中的數量,設 0 為沒有限制 )
maxWait=10000(連線最長等待時間)

(注意 資料庫引數以  key=value形式 不要留空格)

 

 

第八步:配置mybatis屬性

(具體引數意義可參考mybatis官方解釋,在這就不細說了)

<?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="multipleResultSetsEnabled" value="true"/>
      <setting name="useColumnLabel" value="true"/>
      <setting name="useGeneratedKeys" value="false"/>
      <setting name="autoMappingBehavior" value="PARTIAL"/>
      <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
      <setting name="defaultExecutorType" value="SIMPLE"/>
      <setting name="defaultStatementTimeout" value="25"/>
      <setting name="defaultFetchSize" value="100"/>
      <setting name="safeRowBoundsEnabled" value="false"/>
      <setting name="mapUnderscoreToCamelCase" value="false"/>
      <setting name="localCacheScope" value="SESSION"/>
      <setting name="jdbcTypeForNull" value="OTHER"/>
      <setting name="logImpl" value="STDOUT_LOGGING"/>
      <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
    </settings>
</configuration>

 

第九步:配置spring屬性

(注意你的包名,如果你得目錄結構和我一樣複製即可,不同的話需要適當修改)

<?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:aop="http://www.springframework.org/schema/aop"
    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.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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 使用註解驅動 -->
    <mvc:annotation-driven />

    <!-- 掃描所有註解 -->
    <context:component-scan base-package="com.lb.*"></context:component-scan>

    <!-- 設定檢視層 -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!-- 引入mysql-jdbc.properties檔案 -->
    <context:property-placeholder location="classpath:mysql-jdbc.properties" />

    <!-- 配置資料來源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="${driver}"></property>
        <property name="url" value="${url}"></property>
        <property name="username" value="${username}"></property>
        <property name="password" value="${password}"></property>
        <property name="initialSize" value="${initSize}"></property>
        <property name="maxTotal" value="${maxActive}"></property>
        <property name="maxIdle" value="${maxIdle}"></property>
        <property name="maxWaitMillis" value="${maxWait}"></property>
    </bean>

    <!-- mybatis sqlSessionFactory設定 有資料來源、mybatis配置檔案、所有mapper檔案 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    
        <!-- 說明資料來源name和ref為上方配置的資料來源id -->
        <property name="dataSource" ref="dataSource"></property>
        
        <!-- 說明本地mybatis配置檔案的路徑 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>

        <!-- 說明所有mybatis自動生成的mapper.xml檔案的路徑 -->
        <property name="mapperLocations" value="classpath:com/lb/mapper/*.xml"></property>
    </bean>


    <!-- 說明所有mybatis自動生成的對映介面的位置 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com/lb/dao"></property>
    </bean>

    <!-- 配置事務管理器 -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
</beans>

第十步:配置SpringIoC容器和攔截設定

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <!-- SpringIoC容器配置檔案路徑 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <!-- 配置監聽器,用於初始化SpringIoC容器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 配置 請求上下文監聽 器 -->
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>SSMdemo1</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> 
            </init-param> -->
        <load-on-startup>1</load-on-startup>
    </servlet>

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


</web-app>
 

(作者是設定攔截所有xxx.do形式的請求)

第十一步:新建SSMdemo1-servlet.xml(這個配置檔案加入spring標籤庫)

 

<?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:aop="http://www.springframework.org/schema/aop"
    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.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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
        >
        
    
     
</beans>
 

第十步:執行專案

如果您的專案沒報錯,那恭喜您ssm基本的配置已經ok了。