1、新建一个maven项目
选择模板
添加参数
archetypeCatalog=internal
等待maven项目构建完成
控制台出现BUILD SUCCESS提示,并且项目结构完整(有src,main,webapp等几个包)即构建完成
2、导入依赖
导入ssm框架项目中需要用到的jar包,替换项目中的properties标签和dependencies标签
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spring.version>5.2.12.RELEASE </spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!--jsp依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
<!--JSTL表达式依赖-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!--standard标签库依赖-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!--mysql-jdbc依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!--json依赖-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
<!--spring依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!--springAOP的包-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<!--ssm整合jdbc依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--mybatis整合依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.5</version>
</dependency>
</dependencies>
3、配置web.xml文件
<!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>
<context-param>
<!-- 通过该标签配置的键值对最终是会放到ServletContext(application)中 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 配置启动IOC容器的监听器:当ServletContext对象创建的时候启动IOC容器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
4、在项目的main目录下创建Java文件夹和resources文件夹
如果没有图示的文件夹,则先创建一个普通的文件夹,然后再选中文件夹按鼠标右键,把文件夹标记为对应的类型即可
5、在resources根目录下创建Spring和mybatis的配置文件
mybatis-config.xml
配置mybatis中写sql语句的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语句的xml文件-->
<mappers>
<mapper resource="mapper/ForeUserMapper"></mapper>
</mappers>
</configuration>
applicationContext
配置扫描器,以及和mybatis的整合
<?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">
<!--
DataSource:使用Spring的数据源替换Mybatis的配置c3pθ dbcp druid
我们这里使用Spring提供的JDBC:org.springframework.jdbc.datasource
-->
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/train12306-2?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<!--sql会话工厂对象-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"/>
<!--连通mybatis、-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!-- 将mybatis实现的接口注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
<property name="basePackage" value="com.cykj.mapper"></property>
</bean>
<!--统一管理bean
声明组件扫描器,组件就是Java对象
base-package:要扫描的包
component-scan工作方式:Spring会扫描遍历base-package指定的包
把包中的所有类,找到类中的注解,按照注解的功能来创建对象,或给属性赋值
-->
<context:component-scan base-package="com.cykj"/>
</beans>
6、在java目录创建包com.cykj并在cykj包下面创建四个包
7、编写测试的所有代码,测试spring与mybatis是否可用
8、Servlet中本来不能使用@Autowired注入bean,解决办法修改每个servlet中的init方法
package com.cykj.web;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import org.springframework.web.context.support.WebApplicationContextUtils;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class BaseServlet extends HttpServlet {
private ApplicationContext app;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
//Servlet中本来不能使用@Autowired注入bean,解决办法是在Servlet的init(ServletConfig)方法中调用
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
app = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
}
public Object getObject(Class c) {
return app.getBean(c);
}
}
anAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
app = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
}
public Object getObject(Class c) {
return app.getBean©;
}
}
本文含有隐藏内容,请 开通VIP 后查看