2、导入依赖坐标
在pom.xml里面导入坐标,我的pom文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=“/POM/4.0.0” xmlns:xsi=“/2001/XMLSchema-instance”
xsi:schemaLocation=“/POM/4.0.0 /xsd/maven-4.0.0.xsd”>
4.0.0
cn.star
myssm
1.0-SNAPSHOT
war
myssm Maven Webapp
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<piler.source>1.8</piler.source>
<piler.target>1.8</piler.target>
<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mysql.version>5.1.6</mysql.version>
<mybatis.version>3.4.5</mybatis.version>
org.aspectj
aspectjweaver
1.6.8
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
<artifactId
spring-webmvc
${spring.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
junit
junit
4.12
mysql
mysql-connector-java
${mysql.version}
javax.servlet
servlet-api
2.5
provided
javax.servlet.jsp
jsp-api
2.0
provided
jstl
jstl
1.2
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.3.0
c3p0
c3p0
0.9.1.2
jar
compile
myssm
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
3、创建java和resources文件夹
在main目录下面创建java和resources文件夹,并设置相应文件
4、创建类和接口文件
在java文件夹下创建类文件,所需的类文件有以下几个:
存放javabean的 domain 包下的用户类:cn.star.domain.Users
数据访问层 dao 包下的用户 dao 接口:cn.star.dao.UsersDao
业务层 service 包下的 UsersService 接口:cn.star.service.UsersService
业务层 service 包下的 service 实现类,继承service接口:cn.star.service.impl.UsersServiceImpl
控制层 controller 包下的用户控制层UsersController类:cn.star.controller.UsersController
【1】创建存放 javabean 类文件:cn.star.domain.Users
package cn.star.domain;
import java.io.Serializable;
/**
〈一句话功能简述〉
〈用户类〉
@author OneStar
@create /11/8
@since 1.0.0
*/
public class Users implements Serializable {
private Integer id;
private String username;
private String PASSWORD;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPASSWORD() {
return PASSWORD;
}
public void setPASSWORD(String PASSWORD) {
this.PASSWORD = PASSWORD;
}
@Override
public String toString() {
return “Users{” +
“id=” + id +
“, username='” + username + ‘’’ +
“, PASSWORD='” + PASSWORD + ‘’’ +
‘}’;
}
}
【2】创建数据访问层 UsersDao 接口:cn.star.dao.UsersDao
这里只需要编写接口就可以了,框架会帮我们生成一个代理对象
package cn.star.dao;
import cn.star.domain.Users;
import java.util.List;
/**
〈一句话功能简述〉
〈数据访问层 UsersDao 接口〉
@author OneStar
@create /11/8
@since 1.0.0
*/
public interface UsersDao {
//查询所有用户
public List findUsers();
//用户注册
public void insertUsers(Users users);
//用户登录
public Users login(Users users);
}
【3】创建业务层 UsersService 接口:cn.star.service.UsersService
package cn.star.service;
import cn.star.domain.Users;
import java.util.List;
/**
〈一句话功能简述〉
〈业务层接口〉
@author OneStar
@create /11/9
@since 1.0.0
*/
public interface UsersService {
//查询所有用户
public List findUsers();
//用户注册
public void insertUsers(Users users);
//用户登录
public boolean login(Users users);
}
【4】Service 实现类:cn.star.service.impl.UsersServiceImpl
继承 UsersService 接口
package cn.star.service.impl;
import cn.star.domain.Users;
import cn.star.service.UsersService;
import java.util.List;
/**
〈一句话功能简述〉
〈Service 实现类〉
@author OneStar
@create /11/9
@since 1.0.0
*/
public class UsersServiceImpl implements UsersService {
@Override
public List findUsers() {
System.out.println(“业务层:查询用户”);
return null;
}
@Override
public void insertUsers(Users users) {
System.out.println(“业务层:用户注册”);
}
@Override
public boolean login(Users users) {
System.out.println(“业务层:用户登录”);
}
}
【5】创建用户控制层UsersController类:cn.star.controller.UsersController
5、创建配置文件
在resources文件夹下创建多个配置文件,主要有:
spring相关配置:spring.xml
springmvc相关配置:spring-mvc.xml
mybatis相关配置:mybatis.xml
日志相关配置:log4j.properties
【1】spring.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“/schema/beans”
xmlns:xsi=“/2001/XMLSchema-instance”
xmlns:context=“/schema/context”
xmlns:aop=“/schema/aop”
xmlns:tx=“/schema/tx”
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd
/schema/context
/schema/context/spring-context.xsd
/schema/aop
/schema/aop/spring-aop.xsd
/schema/tx
/schema/tx/spring-tx.xsd">
【2】spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“/schema/beans”
xmlns:mvc=“/schema/mvc”
xmlns:context=“/schema/context”
xmlns:xsi=“/2001/XMLSchema-instance”
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd
/schema/mvc
/schema/mvc/spring-mvc.xsd
/schema/context
/schema/context/spring-context.xsd">
【3】mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>【4】log4j.properties
Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=info, CONSOLE, LOGFILE
Set the enterprise logger category to FATAL and its only appender to CONSOLE.
.apache.axis.enterprise=FATAL, CONSOLE
CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
【5】目录结构
至此,整个目录结构如下
三、整合框架编写
========
1、编写spring框架
【1】配置注解扫描
在spring.xml中配置注解扫描,加上以下配置:
<context:component-scan base-package=“cn.star”>
<context:exclude-filter type=“annotation” expression=“org.springframework.stereotype.Controller” />
</context:component-scan>
【2】为service实现类添加注解
在UsersServiceImpl类中添加注解,把service交给IOC容器管理
@Service(“usersService”)
public class UsersServiceImpl implements UsersService {…}
【3】测试spring框架
这里只做用户查询测试,创建测试类:cn.star.test.springtest
package cn.star.test;
import cn.star.service.UsersService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
〈一句话功能简述〉
〈测试类〉
@author OneStar
@create /11/11
@since 1.0.0
*/
public class springtest {
@Test
public void Test(){
//加载配置文件
ApplicationContext ac = new ClassPathXmlApplicationContext(“classpath:spring.xml”);
//获取对象
UsersService us = (UsersService) ac.getBean(“usersService”);
//调用方法
us.findUsers();
}
}
运行,打印以下信息则搭建成功:
2、编写 SpringMVC 框架
【1】配置 web.xml
配置前端控制器
加载spring-mvc.xml配置文件
启动服务器,创建Servlet
配置过滤器解决中文乱码
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
dispatcherServlet
/
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
【2】配置 spring-mvc.xml
开启注解扫描,只扫描 controller
配置视图解析器
过滤静态资源
开启SpringMVC注解支持
<context:component-scan base-package=“cn.star”>
<context:include-filter type=“annotation” expression=“org.springframework.stereotype.Controller” />
</context:component-scan>
<mvc:resources location=“/css/” mapping=“/css/**” />
<mvc:resources location=“/images/” mapping=“/images/**” />
<mvc:resources location=“/js/” mapping=“/js/**” />
mvc:annotation-driven/
【3】测试SpringMVC
编写用户控制层
编写index.jsp页面
编写跳转页面
1. 编写UsersController用户控制层
package cn.star.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
〈一句话功能简述〉
〈用户控制层〉
@author OneStar
@create /11/9
@since 1.0.0
*/
@Controller
@RequestMapping(“/users”)
public class UsersController {
@RequestMapping(“/findUsers”)
public String findUsers(){
System.out.println(“表现层:查询用户”);
return “Users”;
}
}
2. 编写index.jsp页面
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
查询用户
3. 编写跳转页面
在 WEB-INF 目录下新建 pages 目录,pages 目录下创建 Users.jsp 页面,编写 Users.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” isELIgnored=“false” %>
<%@ taglib prefix=“c” uri=“/jsp/jstl/core” %>
查询所有用户
4. 部署Tomcat项目并测试
部署好后运行,点击测试查询链接,跳转到查询用户界面,SpringMVC配置成功
3、Spring 整合 SpringMVC 框架
使用spring框架整合springmvc框架,目的就是能够使用 controller 层方法调用 service 业务层方法,那要如何实现呢?分析如下:
浏览器发送请求,通过web.xml中配置的前端控制器加载springmvc.xml配置文件
在springmvc.xml配置文件中配置Spring的监听器,默认只加载WEB-INF目录下的spring.xml配置文件
将service注入controller,调用service对象的方法进行测试
【1】配置web.xml
配置Spring的监听器和文件路径
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:spring.xml
【2】service注入controller
修改 UsersController 类,将service注入controller,调用service对象的方法进行测试,修改后如下:
package cn.star.controller;
import cn.star.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
〈一句话功能简述〉
〈用户控制层〉
@author OneStar
@create /11/9
@since 1.0.0
*/
@Controller
@RequestMapping(“/users”)
public class UsersController {
@Autowired
private UsersService usersService;
@RequestMapping(“/findUsers”)
public String findUsers(){
System.out.println(“表现层:查询用户”);
//调用service对象的方法进行测试
usersService.findUsers();
return “Users”;
}
}
【3】测试运行
点击测试查询链接后,在后台打印一下信息,说明spring成功整合springmvc
4、编写 mybatis 框架
【1】配置mybatis.xml配置文件
在configuration标签内添加以下配置:
【2】编写UserDao类
public interface UsersDao {
//查询所有用户
@Select(“select * from users”)
public List findUsers();
//用户注册
@Insert(“INSERT INTO USERS (username,PASSWORD) VALUES(#{username},#{PASSWORD})”)