一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - 詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

2021-03-05 14:31alexpdh JAVA教程

本篇文章主要介紹了手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版),具有一定的參考價值,感興趣的小伙伴們可以參考一下

ssm(spring+springmvc+mybatis),目前較為主流的企業級架構方案。標準的mvc設計模式,將整個系統劃分為顯示層、controller層、service層、dao層四層,使用springmvc負責請求的轉發和視圖管理,spring實現業務對象管理, mybatis作為數據對象持久化引擎。

一. 框架詳情

spring是一個輕量級的java開發框架,它是為了解決企業應用開發的復雜性而創建的。spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何java應用都可以從spring中受益。 簡單來說,spring是一個輕量級的控制反轉(ioc)和面向切面(aop)的容器框架

springmvc屬于springframework的后續產品,分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制

mybatis是一個基于java的持久層框架。mybatis提供的持久層框架包括sql maps和data access objects(dao)它消除了幾乎所有的jdbc代碼和參數的手工設置以及結果集的檢索。mybatis 使用簡單的 xml或注解用于配置和原始映射,將接口和 java映射成數據庫中的記錄

二. 創建maven項目

1、eclipse中用maven創建項目

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

2、按默認next

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

3、找到maven-archetype-webapp后,點擊next

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

4、填寫相應的信息,groupid是項目組織唯一的標識符,實際對應java的包的結構。artifactid就是項目的唯一的標識符,實際對應項目的名稱,就是項目根目錄的名稱。package填了默認給你建一個包,不寫也可以。

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

5、剛建好的目錄如下

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

6、maven規定必須添加以下source folder:

src/main/resources
src/main/java
src/test/resources
src/test/java

在這步之前最好先項目上右鍵選擇properties,然后點擊java build path,在librarys下,編輯jre system library,選擇workspace default jre。

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

7、分別修改輸出路徑為,對應關系如下:

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

8、將項目轉換成dynamic web project,在項目上右鍵properties,在左側選擇 project facets。

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

9、設置部署時的文件發布路徑,刪除test的兩項,因為test是測試使用,并不需要部署。

設置將maven的jar包發布到lib下。add -> java build path entries -> maven dependencies -> finish

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

三. maven引入需要的jar包

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<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.yingjun.test</groupid>
  <artifactid>tradingstate</artifactid>
  <packaging>war</packaging>
  <version>2.0.1</version>
 
  <properties>
    <project.build.sourceencoding>utf-8</project.build.sourceencoding>
    <maven.build.timestamp.format>yyyymmddhhmmss</maven.build.timestamp.format>
    <spring.version>3.2.9.release</spring.version>
    <mybatis.version>3.1.1</mybatis.version>
    <mybatisspring.version>1.1.1</mybatisspring.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupid>org.springframework</groupid>
      <artifactid>spring-core</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-test</artifactid>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis</artifactid>
      <version>${mybatis.version}</version>
    </dependency>
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis-spring</artifactid>
      <version>${mybatisspring.version}</version>
    </dependency>
    <dependency>
      <groupid>mysql</groupid>
      <artifactid>mysql-connector-java</artifactid>
      <version>5.1.34</version>
    </dependency>
    <dependency>
      <groupid>junit</groupid>
      <artifactid>junit</artifactid>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupid>c3p0</groupid>
      <artifactid>c3p0</artifactid>
      <version>0.9.1.2</version>
    </dependency>
    <dependency>
      <groupid>org.aspectj</groupid>
      <artifactid>aspectjweaver</artifactid>
      <version>1.8.1</version>
    </dependency>
    <dependency>
      <groupid>javax.servlet</groupid>
      <artifactid>jstl</artifactid>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupid>javax.servlet</groupid>
      <artifactid>servlet-api</artifactid>
      <version>3.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupid>javax.servlet.jsp</groupid>
      <artifactid>jsp-api</artifactid>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupid>commons-fileupload</groupid>
      <artifactid>commons-fileupload</artifactid>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupid>commons-lang</groupid>
      <artifactid>commons-lang</artifactid>
      <version>2.6</version>
    </dependency>
    <dependency>
      <groupid>commons-codec</groupid>
      <artifactid>commons-codec</artifactid>
      <version>1.9</version>
    </dependency>
    <dependency>
      <groupid>org.apache.httpcomponents</groupid>
      <artifactid>httpclient</artifactid>
      <version>4.5</version>
    </dependency>
    <dependency>
      <groupid>org.slf4j</groupid>
      <artifactid>slf4j-api</artifactid>
      <version>1.7.10</version>
    </dependency>
    <dependency>
      <groupid>org.slf4j</groupid>
      <artifactid>slf4j-log4j12</artifactid>
      <version>1.7.10</version>
    </dependency>
    <dependency>
      <groupid>log4j</groupid>
      <artifactid>log4j</artifactid>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupid>com.alibaba</groupid>
      <artifactid>fastjson</artifactid>
      <version>1.1.41</version>
    </dependency>
    <dependency>
      <groupid>org.codehaus.jackson</groupid>
      <artifactid>jackson-mapper-asl</artifactid>
      <version>1.9.13</version>
    </dependency>
  </dependencies>
 
  <build>
    <plugins>
      <plugin>
        <artifactid>maven-compiler-plugin</artifactid>
        <version>2.3.2</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactid>maven-war-plugin</artifactid>
        <version>2.2</version>
        <configuration>
          <version>3.0</version>
          <failonmissingwebxml>false</failonmissingwebxml>
        </configuration>
      </plugin>
    </plugins>
    <finalname>${project.artifactid}_${project.version}_${maven.build.timestamp}</finalname>
  </build>
</project>

四. 相關配置文件配置,整合ssm框架

web.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
  xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
  xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">
 
  <!-- 配置 spring -->
  <context-param>
    <param-name>contextconfiglocation</param-name>
    <param-value>classpath:spring.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
  </listener>
  <!-- 防止spring內存溢出監聽器 -->
  <listener>
    <listener-class>org.springframework.web.util.introspectorcleanuplistener</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>classpath: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>

spring.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?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:mvc="http://www.springframework.org/schema/mvc"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemalocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/mvc 
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      http://www.springframework.org/schema/aop 
      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
 
  <!-- 掃描service、dao組件 -->
  <context:component-scan base-package="com.yingjun.test" />
  <!-- 分解配置 jdbc.properites -->
  <context:property-placeholder location="classpath:jdbc.properties" />
   
  <!-- 數據源c3p0 -->
  <bean id="datasource" class="com.mchange.v2.c3p0.combopooleddatasource">
    <property name="driverclass" value="${jdbc.driverclassname}" />
    <property name="jdbcurl" value="${jdbc.url}" />
    <property name="user" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="maxpoolsize" value="${c3p0.pool.size.max}" />
    <property name="minpoolsize" value="${c3p0.pool.size.min}" />
    <property name="initialpoolsize" value="${c3p0.pool.size.ini}" />
    <property name="acquireincrement" value="${c3p0.pool.size.increment}" />
  </bean>
 
   <!-- sessionfactory 將spring和mybatis整合 -->
  <bean id="sqlsessionfactory" class="org.mybatis.spring.sqlsessionfactorybean">
    <property name="datasource" ref="datasource" />
    <property name="configlocation" value="classpath:spring-mybatis.xml" />
    <property name="mapperlocations" value="classpath*:com/yingjun/test/mapping/**/*.xml" />
  </bean>
  <bean class="org.mybatis.spring.mapper.mapperscannerconfigurer">
    <property name="basepackage" value="com,yingjun.test.dao" />
    <property name="sqlsessionfactorybeanname" value="sqlsessionfactory" />
  </bean>
 
  <bean id="transactionmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager">
    <property name="datasource" ref="datasource" />
  </bean>
  <tx:advice id="transactionadvice" transaction-manager="transactionmanager">
    <tx:attributes>
      <tx:method name="add*" propagation="required" />
      <tx:method name="append*" propagation="required" />
      <tx:method name="insert*" propagation="required" />
      <tx:method name="save*" propagation="required" />
      <tx:method name="update*" propagation="required" />
      <tx:method name="modify*" propagation="required" />
      <tx:method name="edit*" propagation="required" />
      <tx:method name="delete*" propagation="required" />
      <tx:method name="remove*" propagation="required" />
      <tx:method name="repair" propagation="required" />
      <tx:method name="delandrepair" propagation="required" /> 
      <tx:method name="get*" propagation="supports" />
      <tx:method name="find*" propagation="supports" />
      <tx:method name="load*" propagation="supports" />
      <tx:method name="search*" propagation="supports" />
      <tx:method name="datagrid*" propagation="supports" /> 
      <tx:method name="*" propagation="supports" />
    </tx:attributes>
  </tx:advice>
  <aop:config>
    <aop:pointcut id="transactionpointcut" expression="execution(* com.yingjun.test.service..*impl.*(..))" />
    <aop:advisor pointcut-ref="transactionpointcut" advice-ref="transactionadvice" />
  </aop:config>
</beans>

為了代替手工使用 sqlsessiondaosupport 或 sqlsessiontemplate 編寫數據訪問對象 (dao)的代碼,mybatis-spring 提供了一個動態代理的實現:mapperfactorybean。這個類 可以讓你直接注入數據映射器接口到你的 service 層 bean 中。當使用映射器時,你僅僅如調 用你的 dao 一樣調用它們就可以了,但是你不需要編寫任何 dao 實現的代碼,因為 mybatis-spring 將會為你創建代理。

spring-mybatis.xml

?
1
2
3
4
5
<?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>
  <!-- 暫時不需要其他配置-->
</configuration>   

spring-mvc.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?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"
  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.0.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-3.0.xsd
  http://www.springframework.org/schema/mvc 
  http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
  <!-- 默認的注解映射的支持 -->
  <mvc:annotation-driven />
 
  <!-- 自動掃描該包,使springmvc認為包下用了@controller注解的類是控制器 -->
  <context:component-scan base-package="com.yingjun.test.controller" />
 
  <!--避免ie執行ajax時,返回json出現下載文件 -->
  <bean id="mappingjacksonhttpmessageconverter"
    class="org.springframework.http.converter.json.mappingjacksonhttpmessageconverter">
    <property name="supportedmediatypes">
      <list>
        <value>text/html;charset=utf-8</value>
      </list>
    </property>
  </bean>
 
  <!-- 定義跳轉的文件的前后綴 ,視圖模式配置 -->
  <bean
    class="org.springframework.web.servlet.view.internalresourceviewresolver">
    <!-- 這里的配置我的理解是自動給后面action的方法return的字符串加上前綴和后綴,變成一個 可用的url地址 -->
    <property name="prefix" value="/web-inf/jsp/" />
    <property name="suffix" value=".jsp" />
  </bean>
 
  <!-- 配置文件上傳,如果沒有使用文件上傳可以不用配置,當然如果不配,那么配置文件中也不必引入上傳組件包 -->
  <bean id="multipartresolver"
    class="org.springframework.web.multipart.commons.commonsmultipartresolver">
    <!-- 默認編碼 -->
    <property name="defaultencoding" value="utf-8" />
    <!-- 文件大小最大值 -->
    <property name="maxuploadsize" value="10485760000" />
    <!-- 內存中的最大值 -->
    <property name="maxinmemorysize" value="40960" />
  </bean> 
</beans>

log4j.properties

?
1
2
3
4
5
6
7
8
9
jdbc.driverclassname=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://192.168.1.194:3306/test?useunicode=true&characterencoding=utf-8
jdbc.username=root
jdbc.password=root
 
c3p0.pool.size.max=20
c3p0.pool.size.min=5
c3p0.pool.size.ini=3
c3p0.pool.size.increment=2

jdbc.properties

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
log4j.rootlogger=info, console, debug, app, error
 
###console ###
log4j.appender.console = org.apache.log4j.consoleappender
log4j.appender.console.target = system.out
log4j.appender.console.layout = org.apache.log4j.patternlayout
log4j.appender.console.layout.conversionpattern = %d %p[%c:%l]- %m%n
 
### debug ### 
log4j.appender.debug = org.apache.log4j.dailyrollingfileappender
log4j.appender.debug.file = log/debug.log
log4j.appender.debug.append = true
log4j.appender.debug.threshold = debug
log4j.appender.debug.datepattern='.'yyyy-mm-dd
log4j.appender.debug.layout = org.apache.log4j.patternlayout
log4j.appender.debug.layout.conversionpattern = %d %p[%c:%l] - %m%n
 
### app ### 
log4j.appender.app = org.apache.log4j.dailyrollingfileappender
log4j.appender.app.file = log/app.log
log4j.appender.app.append = true
log4j.appender.app.threshold = info
log4j.appender.app.datepattern='.'yyyy-mm-dd
log4j.appender.app.layout = org.apache.log4j.patternlayout
log4j.appender.app.layout.conversionpattern = %d %p[%c:%l] - %m%n
 
### error ###
log4j.appender.error = org.apache.log4j.dailyrollingfileappender
log4j.appender.error.file = log/error.log
log4j.appender.error.append = true
log4j.appender.error.threshold = error 
log4j.appender.error.datepattern='.'yyyy-mm-dd
log4j.appender.error.layout = org.apache.log4j.patternlayout
log4j.appender.error.layout.conversionpattern =%d %p[%c:%l] - %m%n

 五. 利用mybatis generator自動創建實體類、映射文件以及dao接口

mybatis屬于一種半自動的orm框架,所以主要的工作就是配置mapping映射文件,但是由于手寫映射文件很容易出錯,所以可利用mybatis生成器自動生成實體類、dao接口和mapping映射文件。這樣可以省去很多的功夫,將生成的代碼copy到項目工程中即可。

生成代碼需要的文件和jar并建立如下目錄結構:

詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級詳細版)

在generatorl.xml中配置相關的數據庫連接,已經數據庫表:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?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="mysql-connector-java-5.1.34.jar" />
  <context id="db2tables" targetruntime="mybatis3">
    <commentgenerator>
      <property name="suppressdate" value="true" />
      <!-- 是否去除自動生成的注釋 true:是 : false:否 -->
      <property name="suppressallcomments" value="true" />
    </commentgenerator>
    <!--數據庫鏈接url,用戶名、密碼 -->
    <jdbcconnection driverclass="com.mysql.jdbc.driver"
      connectionurl="jdbc:mysql://192.168.1.194:3306/noc"
      userid="root" password="root">
    </jdbcconnection>
    <javatyperesolver>
      <property name="forcebigdecimals" value="false" />
    </javatyperesolver>
    <!-- 生成模型的包名和位置 -->
    <javamodelgenerator targetpackage="com.yingjun.test.model"
      targetproject="src">
      <property name="enablesubpackages" value="true" />
      <property name="trimstrings" value="true" />
    </javamodelgenerator>
    <!-- 生成映射文件的包名和位置 -->
    <sqlmapgenerator targetpackage="com.yingjun.test.mapping"
      targetproject="src">
      <property name="enablesubpackages" value="true" />
    </sqlmapgenerator>
    <!-- 生成dao的包名和位置 -->
    <javaclientgenerator type="xmlmapper" targetpackage="com.yingjun.test.dao"
       targetproject="src">
       <property name="enablesubpackages" value="true" />
    </javaclientgenerator>
    <!-- 要生成的表 tablename是數據庫中的表名或視圖名 domainobjectname是實體類名 -->
    <table tablename="other_list" domainobjectname="otherlist"
      enablecountbyexample="fasle" enableupdatebyexample="false"
      enabledeletebyexample="false" enableselectbyexample="false"
      selectbyexamplequeryid="false" >
    </table>
  </context>
</generatorconfiguration> 

打開cmd窗口 進入該目錄結構,輸入命令行:

java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

運行完成后會生成相應的dao mapper 和model,是不是很爽。

六. 建立service層以及conrorller層

  1. package com.yingjun.test.service; 
  2. public interface otherservicei {     
  3.   public string getoterlist(); 
  4.   
  1. package com.yingjun.test.service; 
  2. import java.util.arraylist; 
  3. import java.util.arrays; 
  4. import java.util.hashset; 
  5. import java.util.list; 
  6. import java.util.map; 
  7. import java.util.set;  
  8. import org.springframework.beans.factory.annotation.autowired; 
  9. import org.springframework.stereotype.service;  
  10. import com.alibaba.fastjson.json; 
  11. import com.alibaba.fastjson.serializer.serializerfeature; 
  12. import com.yingjun.test.dao.otherlistmapper; 
  13. import com.yingjun.test.model.otherlist; 
  14. import com.yingjun.test.model.otherlistdomain; 
  15. @service 
  16. public class otherserviceimpl implements otherservicei {    
  17.   @autowired 
  18.   private otherlistmapper otherlistmapper; 
  19.   @override 
  20.   public string getoterlist() { 
  21.     set<string> set=new hashset<string>(); 
  22.     list<otherlist> list=otherlistmapper.selectall(); 
  23.     list<otherlistdomain> jsonlist=new arraylist<otherlistdomain>(); 
  24.     for(otherlist other:list){ 
  25.       string title=other.gettitle(); 
  26.       if(set.contains(title)){ 
  27.         continue
  28.       }else
  29.         list<otherlist> t_list=new arraylist<otherlist>(); 
  30.         for(otherlist data:list){ 
  31.           if(title.equals(data.gettitle())){ 
  32.             t_list.add(data); 
  33.           } 
  34.         } 
  35.         otherlistdomain domain=new otherlistdomain(); 
  36.         domain.settitle(title); 
  37.         domain.setitems(t_list); 
  38.         jsonlist.add(domain); 
  39.         set.add(other.gettitle()); 
  40.       } 
  41.     } 
  42.     return json.tojsonstring(jsonlist, serializerfeature.writemapnullvalue);  
  43.   } 
  44.   
  1. package com.yingjun.test.controller; 
  2. import org.springframework.beans.factory.annotation.autowired; 
  3. import org.springframework.stereotype.controller; 
  4. import org.springframework.web.bind.annotation.requestmapping; 
  5. import org.springframework.web.bind.annotation.responsebody;  
  6. import com.alibaba.fastjson.json; 
  7. import com.yingjun.test.service.otherservicei; 
  8. import com.yingjun.test.service.stockstatusservicei; 
  9. @controller 
  10. @requestmapping(value = "/"
  11. public class tsscontroller { 
  12.     
  13.   @autowired 
  14.   private otherservicei otherservice; 
  15.     
  16.   @requestmapping(value="/getotherlist",produces="text/html;charset=utf-8" )   
  17.   @responsebody 
  18.   private string getotherlist(){ 
  19.     string json=otherservice.getoterlist(); 
  20.     return json; 
  21.   } 

七. 建立測試類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.list;
import org.apache.log4j.logmanager;
import org.apache.log4j.logger;
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.test.context.contextconfiguration;
import org.springframework.test.context.junit4.springjunit4classrunner;
@runwith(springjunit4classrunner.class
@contextconfiguration(locations = {"classpath:spring.xml"})
public class testmybatis {
 
  @autowired
  private otherservicei service;
 
  @test
  public void test() {
      string list=service.getoterlist();
      logger.info(list);
  }
   
}

八. 通過瀏覽器進行驗證

http://localhost:8080/tzyjstateservice/getotherlist

至此,測試成功,ssm三大框架的整合就完成了,有什么其他需求可以在此基礎繼續添

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/bhuds/article/details/52674850

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费理伦片手机在线播放 | 高人先生免费观看全集 | se综合| 欧美日韩国产精品va | 胸奶好大好紧好湿好爽 | 成人国产精品视频频 | 日本视频在线观看 | 欧美日韩国产手机在线观看视频 | 亚洲精品97福利在线 | 韩国www | 久久精品国产欧美日韩99热 | 18岁的老处女 | gay台湾无套男同志可播放 | 免费一级欧美片片线观看 | 亚洲网站在线观看 | 2022av小四郎的最新地址 | 91短视频在线免费观看 | 黑人chinese女人 | 日本aa大片在线播放免费看 | gogo人体模特啪啪季玥图片 | 成年人免费在线播放 | 日本高清色视频www 日本高清免费观看 | 国产黄频在线观看 | 国内精品福利丝袜视频_速 国内精品91久久久久 | 女子监狱第二季在线观看免费完整版 | 青青久久精品国产免费看 | 俄罗斯13一14处出血视频在线 | 美女的隐私无遮挡的网页 | 亚洲 日韩 国产 制服 在线 | 国产成人影院一区二区 | 国产精品久久亚洲一区二区 | 欧美一级xxxx俄罗斯一级 | 亚洲品质自拍网站 | 希岛爱理aⅴ在线中文字幕 午夜综合网 | 国产午夜精品福利 | 热99精品视频 | 香蕉视频在线观看网站 | 国产乱码免费卡1卡二卡3卡四 | 亚洲精品电影天堂网 | 午夜影院一区二区三区 | 3d动漫美女物被遭强视频 |