1.技术栈
1.ssm三大技术点
2.mybatis逆向工程
3.使用分页插件
4.使用bootStrap搭建前端页面
2.搭建过程
1.创建一个maven工程
2.引入项目依赖的jar包
spring
springmvc
mybatis
数据库连接池包,mysql驱动包
其他包
1.pom文件依赖
<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xiaoqi</groupId><artifactId>ssm_1_CRUD</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.5.RELEASE</version><scope>compile</scope></dependency><!--spring核心包--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.6</version></dependency><!--springAOP外部依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.5.RELEASE</version></dependency><!--springMVC--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency><!--mybatis集成 spring--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency><!--jstl--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--servlet-api--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><!--juint--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version></dependency><dependency><groupId>com.xiaoqi</groupId><artifactId>ssm_1_CRUD</artifactId><version>1.0-SNAPSHOT</version></dependency><!--分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.0.0</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><!--所在的目录--><includes><!--包括目录下的.properties,.xml 文件都会扫描到--><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version><!--插件的依赖--><dependencies><!--逆向工程核心依赖--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.6</version></dependency></dependencies><configuration><!--配置文件的位置--><configurationFile>GeneratorMybatis</configurationFile><verbose>true</verbose><overwrite>true</overwrite></configuration></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>
3.引入bootStrap。
1.在页面使用标签引入
<%—引入jquery—%>
<%—引入bootStrap样式—%>
4.在web.xml中创建:
1.监听器:监听spring容器的创建
<!--1.启动spring容器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springconfig.xml</param-value>
</context-param>
2.中央调度器
<!--2.springmvc前端控制器 拦截所有请求-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.字符编码过滤器
<!--3.字符编码过滤器-->
<filter>
<filter-name>CharacterEncodingFilter</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>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.rest风格URL
<!--4.使用rest风格URL,将页面普通的post请求转为指定的delte或者put请求-->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.创建springmvc配置文件:DispatherServlet-servlet.xml
如果我们没有在配置文件中指定springmvc的配置文件位置。默认就是web-inf下的DispatherServlet-servlet.xml。
1.springmvc的组件扫描器
<!--1.springMVC的配置文件,包含网站的跳转逻辑,配置-->
<!--禁用掉默认的过滤规则-->
<context:component-scan base-package="com.xiaoqi" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
2.springmvc的视图解析器
<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
3.两个标准配置
1.处理静态资源的执行器
2.处理异步请求的注解驱动
<!--两个标准配置-->
<!--1.处理静态资源-->
<mvc:default-servlet-handler/>
<!--2.能支持springmvc更高级的一些功能,比如jsr303校验,快捷的ajax请求-->
<mvc:annotation-driven/>
6.创建spring配置文件
1.开启组件扫描
<!--开启组件扫描-->
<context:component-scan base-package="com.xiaoqi" use-default-filters="false">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
2.引入外部资源文件。配置数据源
<!--引入外部资源文件-->
<context:property-placeholder location="classpath:dbcp.properties"/>
<!--2.声明数据源-->
<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="${jdbc.max}"/>
</bean>
3.创建SqlSessionFactory,声明SqlSessionFactoryBean
<!--3.声明SqlSessionFactoryBean类,这个类内部创建SqlSessionFactory对象的-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--指定mybatis的连接的数据源信息-->
<property name="dataSource" ref="dataSource"/>
<!--指定mybatis主配置文件-->
<property name="configLocation" value="classpath:mybatis.xml"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
4、配置扫描器,扫描dao层,创建dao层对象到spring容器中
<!--4配置扫描器,扫描dao 创建dao的代理对象放到ioc容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--指定sqlSessionFactory对象的id-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.xiaoqi.dao"/>
</bean>
5.配置事务管理器
<!--
5.创建事务管理器
-->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
<!--注入数据源-->
<property name="dataSource" ref="dataSource"/>
</bean>
6.配置切入点表达式
<aop:config >
<!--切入点表达式-->
<aop:pointcut expression="execution(* com.xiaoqi.service..*(..))" id="txPoint"/>
<!--配置事务增强-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<!--配置事务增强,事务如何切入-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--所有方法都是事务方法-->
<tx:method name="*"/>
<!--以get开始的所有方法-->
<tx:method name="get" read-only="true"/>
</tx:attributes>
</tx:advice>
7.加入可以批量执行的sqlSession
<!--配置一个可以执行批量的sqlsession-->
<bean id="sqlsession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
<constructor-arg name="executorType" value="BATCH" />
</bean>
7.创建mybatis配置文件
1.设置别名
<!--设置别名-->
<typeAliases>
<!--name:实体类所在的包名-->
<package name="com.xiaoqi.domain"/>
</typeAliases>
2.引入分页插件
1.在pom文件中加入分页插件依赖
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
2.在mybatis中引入插件
<!--分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.设置映射别名
<!--设置映射别名-->
<mappers>
<!--注册在这个包下的所有mapper映射文件-->
<package name="com.xiaoqi.dao"/>
</mappers>
8.搭建逆向工程
1.加入pom文件依赖
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<!--插件的依赖-->
<dependencies>
<!--逆向工程核心依赖-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.6</version>
</dependency>
</dependencies>
<configuration>
<!--配置文件的位置-->
<configurationFile>GeneratorMybatis.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
2.创建逆向工程必须的xml配置文件
<?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="D:\javaTools\Webjar\Mybatisjar\mysql-connector-java-5.1.40-bin.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--jdbc连接信息-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/ssm_crud"
userId="root"
password="140489lu">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--指定javaBean的生成位置-->
<javaModelGenerator targetPackage="com.xiaoqi.domain"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--指定sql映射文件生成的位置-->
<sqlMapGenerator targetPackage="mapper"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--指定dao的生成位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.xiaoqi.dao"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--指定每个表的生成策略-->
<table tableName="t_emp" domainObjectName="Employee" >
</table>
<table tableName="t_dept" domainObjectName="Department">
</table>
</context>
</generatorConfiguration>
3.将逆向工程生成的文件进行分层管理
8.搭建测试环境
1.创建一个测试类,我们使用的是spring中自带的测试版本spring-test
加入spring-test依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
2.在测试类上使用@ContextConfigration注解来引入spring配置文件
并且使用@RunWith注解指定spring测试用例版本
// 下边两个注解是spring的测试模块,注意版本要一致 必须要加入spring-test依赖
@RunWith(SpringJUnit4ClassRunner.class)
// 使用单元测试引入spring主配置文件
@ContextConfiguration(locations = {"classpath:springconfig.xml"})
public class MyTest {
3.我们就可以直接在测试类中使用spring容器中已经注册的组件了<br /><br />基于此,ssm环境搭建完成
