SSM Spring+SpringMVC+mybatis+maven環境搭建
阿新 • • 發佈:2018-12-26
1、首先右鍵點選專案區空白處,選擇new-》other..在彈出框中輸入maven,選擇Maven Project。
預設next下一步
選中圖片所選next下一步
輸入其中所需引數點選Finish完成建立操作
2、標準的maven結構,但是還需要建立幾個資料夾,右鍵點選src下的main-》new-》Folder填寫java,右鍵點選src new-》Folder填寫test,同理在test下建立java folder。
在src/main/java下建立基本的層級,如圖:
上圖中jsp的報錯暫時不用管,具體原因尚不清楚,不過不影響專案開發啟動,在pom.xml下新增框架必須的包:
<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.cjl.ssm</groupId> <artifactId>SSM</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>SSM</name> <!-- 編碼 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <!--Maven依賴 需要更換可以到http://mvnrepository.com進行查詢--> <dependencies> <!--Spring--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-mock</artifactId> <version>2.0.8</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.3.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.5.RELEASE</version> </dependency> <!-- mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!-- mybatis 出現分頁使用異常,極有可能是版本問題--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <!-- mybatis pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>3.7.3</version> </dependency> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>0.9.1</version> </dependency> <!--servlet、基本包--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.10</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.10</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <!--mysql驅動包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency> <!--dbcp連線池--> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <!--json、基本包--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.23</version> </dependency> <dependency> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>2.0.2</version> </dependency> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.5</version> </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> <!-- junit4 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <!--專案編譯及其構建--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <warName>SSM</warName> <!-- <packagingExcludes> **/resources/** </packagingExcludes> --> <webResources> <resource> <directory>src/main/resources/resources/config</directory> <targetPath>WEB-INF/classes/resources/config</targetPath> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <targetPath>WEB-INF/classes</targetPath> </resource> </webResources> </configuration> </plugin> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.4.3</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <inherited>true</inherited> <extensions>true</extensions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <!-- 此處由3.2升級為3.3.原因是maven版本3.1的,需要3,3才能相容.否則會報錯:java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter --> <version>3.3</version> <configuration> <locales>zh_CN</locales> </configuration> </plugin> </plugins> </build> </project>
mavenjar包下載完成後需要在resources資料夾下新增幾個配置檔案
applicationContext-mybatis.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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!-- Mybatis 和 Spring的整合 --> <!-- 1.資料來源:DriverManagerDataSource --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/test"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property> </bean> <!-- 2.Mybatis 的 SqlSession的工廠:SqlSessionFactoryBean dataSource引用資料來源 Mybatis 定義資料來源,同意載入配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!-- 3. Mybatis自動掃描載入Sql對映檔案/介面:MapperScannerConfigurer sqlSessionFactory basePackage:指定sql對映檔案/介面所在的包(自動掃描) --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cjl.mapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> <!-- 4.事務管理:DataSourceTransactionManager dataSource 引用上面定義好的資料來源 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 5.使用宣告式事務: transaction-manager = "txManager" tx:advice 這種 是用 aop方式管理事物 annotation-driven 這種是註解方式管理事物 第一種方式,需要在spring配置檔案配置一些引數 第二種方式,需要在 類裡 加一些註解進行事物管理 用一種就行,沒必須都用 --> <tx:annotation-driven transaction-manager="txManager" /> </beans>
generatorConfig.xml 這個xml主要是為了使用mybatis生成程式碼用
<?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>
<!-- <properties resource="init.properties"/> -->
<!-- 指定資料庫連線驅動地址 -->
<classPathEntry
location="C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.40\mysql-connector-java-5.1.40.jar" />
<!-- 一個數據庫一個 context -->
<context id="context1">
<commentGenerator>
<!-- 是否取消註釋 -->
<property name="suppressAllComments" value="true"></property>
<!-- 是否生成註釋代時間戳-->
<property name="suppressDate" value="true"></property>
</commentGenerator>
<!-- jdbc連線配置 -->
<jdbcConnection connectionURL="jdbc:mysql://localhost:3306/test" driverClass="com.mysql.jdbc.Driver" password="123456" userId="root"/>
<!-- 型別轉換 -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自動轉化以下型別(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成實體類的地址 -->
<javaModelGenerator targetPackage="com.cjl.model"
targetProject="D:\eclipse-workspace_lt\ssm\src\main\java" />
<!-- 生成mapper.xml檔案 -->
<sqlMapGenerator targetPackage="com.cjl.mapper"
targetProject="D:\eclipse-workspace_lt\ssm\src\main\resources" />
<!-- 生成mapxml對應的client 也就是介面dao -->
<javaClientGenerator targetPackage="com.cjl.mapper"
targetProject="D:\eclipse-workspace_lt\ssm\src\main\java" type="XMLMAPPER" />
<table schema="test" tableName="tb_department" domainObjectName="Department" enableCountByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
enableUpdateByExample="false">
<!-- domainObjectName 指定生成的類的名字 -->
</table>
</context>
</generatorConfiguration>
mybatis-config.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>
<!-- 配置列印 SQL 到控制檯 以及懶載入 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
<!-- 開啟延遲載入的全域性開關 -->
<setting name="lazyLoadingEnabled" value="true" />
<setting name="aggressiveLazyLoading" value="false" />
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<!-- 為org.bb.ssm.mode.UserInfo 設定一個別名 UserInfo -->
<typeAliases>
<typeAlias type="com.cjl.model.User" alias="User"/>
</typeAliases>
<mappers>
<package name="com.cjl.mapper"/>
</mappers>
</configuration>
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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- 開啟註解 -->
<mvc:annotation-driven/>
<!-- 配置自定掃描包 -->
<context:component-scan base-package="com.cjl.controller"/>
<context:component-scan base-package="com.cjl.service.Impl"/>
<!-- 配置檢視解析器: 如何把 handler 方法返回值解析為實際的物理檢視 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 處理靜態資源 -->
<!-- <mvc:default-servlet-handler/> -->
<mvc:resources mapping="/vendor/**" location="/vendor/" />
<mvc:resources mapping="/dist/**" location="/dist/" />
</beans>
3、接下來建立一張表,已完成程式碼測試以及本次ssm框架搭建工作
CREATE TABLE `user` (
`user_id` varchar(10) NOT NULL default '',
`user_name` varchar(50) default NULL,
`user_age` varchar(50) default NULL,
`department_id` int(10) default NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
建立好後需要在generatorConfig.xml生成程式碼配置檔案中修改好適合自己專案的配置方法,右鍵點選專案選擇Run as->Maven Build..->在goals中填寫:mybatis-generator:generate -e 點選run
當看到構建成功後即可重新整理專案
可以看到程式碼已經生成完成!!將專案加入tomcat啟動
可以看到專案部署已經完成!
檢視原文 >>