1、添加相关依赖
<!--spring框架的基本依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!--spring连接数据库,管理sql语句事务的依赖:两个依赖连在一起-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!--Spring监听器依赖ContextLoaderListener-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!--mybatis和spring集成的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--druid数据库连接池依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!--springmvc依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--Jackson依赖:springmvc配置文件中的注解驱动用到-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<resources>
<!--作用:把src/main/java目录下的.xml,.properties文件读取,输出到target/classes目录下-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
2、创建DispatcherServlet
2.1、在web.xml
<!--创建springmvc的中央调度器:DispatcherServlet
1、需要在Tomcat启动时,创建DispatcherServlet对象
2、DispatcherServlet在初始化时会执行init()
3、在init()中读取springmvc配置文件,创建springmvc容器
4、再将springmvc容器放入到全局作用域:ServletContext-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--自定义DispatcherServlet读取springmvc配置文件的路径-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/springmvc.xml</param-value>
</init-param>
<!--在Tomcat启动时,创建DispatcherServlet对象-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--配置DispatcherServlet的请求处理路径
1、使用扩展名方式:*.do *.json *.mvc
2、使用"/"-->
<url-pattern>/</url-pattern>
</servlet-mapping>
2.2、新建springmvc.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.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--声明注解扫描器-->
<context:component-scan base-package="com.bjpowernode.controller"/>
<!--将@ResponseBody标记返回的数据转化为json格式字符串
原理:
1、实现了HttpMessageConveter接口:消息转化器
将Java对象转化成:json,xml,text..等数据格式
2、当Controller返回String时:StringHttpMessageConverter
当Controller返回Object时:MappingJackson2HttpMessageConverter-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<!--HttpMessageConveter接口实现类-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!--声明静态资源处理器:把controller未映射的请求,转发给tomcat的DefaultServlet处理。
default-servlet-handler与@RequestMapping有冲突,需要加入annotation-driver解决冲突-->
<mvc:default-servlet-handler />
</beans>
2.3、在web.xml中创建过滤器,设置resque,respon的字符集
<!--创建Tomcat过滤器,解决springmvc请求乱码问题-->
<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>
<!--设置HttpServletRequest的编码为UTF-8-->
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<!--设置HttpServletResponse的编码为UTF-8-->
<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>
3、新建applicationContext.xml
3.1、新建jdbc.properties
url=jdbc:mysql://172.16.65.177:3306/springdb
username=root
password=213213
3.2、新建mybatis-config.xml
<!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"/>
</settings>
<!--sql语句配置文件路径-->
<mappers>
<!--配置单个mapper.xml-->
<!--<mapper resource="SqlMapper.xml"/>-->
<!--使用package标签要求:1、mapper文件名称和doa接口名称一样 2、mapper文件和dao接口在同一个目录下-->
<!--配置包下所有mapper.xml-->
<package name="com.bjpowernode.dao"/>
</mappers>
</configuration>
3.3、配置applicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--声明注解扫描器:让@Serivce,@Autowier..生效-->
<context:component-scan base-package="com.bjpowernode"/>
<!--在sping配置文件中导入jdbc.properties,读取方式:${key}-->
<context:property-placeholder location="classpath:conf/jdbc.properties"/>
<!--
创建数据源:连接数据库,不需要配置数据库驱动:driver,druid内部会自动匹配
相当于创建了JDBC: Connection connection = DriverManager.getConnection(url, user, password);
-->
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<!--创建sqlSessionFactoryBean,该类在内部创建了sqlSessionFactory-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="druidDataSource"/>
<property name="configLocation" value="classpath:conf/mybatis-config.xml"/>
</bean>
<!--
创建Dao接口实现类:
1、需要sqlSession 2、需求Dao.class 最后调用: sqlSession.getMapper(Dao.class);
3、spring与mybatis整合时,数据库事务是自动提交的,类似:sqlSessionFactory.openSession(true)
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--通过sqlSessionFactory获取sqlSession-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
<!--通过basePackage扫描到Dao.class-->
<property name="basePackage" value="com.bjpowernode.dao"/>
</bean>
</beans>
4、注册spring监听器:ContextLoaderListener
<!--注册spring监听器ContextLoaderListener
监听器被创建后会默认读取:/WEB-INF/applicationContext.xml,来创建spring容器,
但是applicationContext.xml不在/WEB-INF目录下,会抛异常,
使用<context-param>自定义Spring监听器读取配置文件的位置-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--自定义Spring监听器读取配置文件的位置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/applicationContext.xml</param-value>
</context-param>
5、mapper映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="">
</mapper>