框架整合——SSM基于配置文件的整合

前言:

Spring、SpringMVC、MyBatis三个轻量级框架各自具有不同的功能。
Spring:提供了 IoC(控制反转)和 AOP(面向切面编程)功能,帮助管理对象的生命周期和依赖关系。
SpringMVC:采用 MVC(模型-视图-控制器)设计模式,将请求处理、业务逻辑和视图渲染分离。它可以处理 HTTP 请求,支持 RESTful 风格的接口,适合构建 Web 应用。
MyBatis:简化了数据库操作,使用 XML 或注解方式定义 SQL 语句,与 Java 对象进行映射。相比于 Hibernate,MyBatis 提供了更大的 SQL 控制灵活性,适合复杂查询。

        简单来说:对于一个web项目,我们可以让SpringMVC负责表现层,MyBatis负责数据持久层,而Spring负责管理SpringMVC和MyBatis相关对象的创建和依赖注入。尽管他们作用在不同层面上,但也需要协同工作,例如:SpringMVC处理JSP到handler,handler调用service,service调用Repository,而Repository就需要MyBatis所以他们直接存在关联。他们各自负责一部分,整合起来就是一个完整的ssm框架。但是整合的时候对于数量众多的配置文件,和各种不同的配置方式也是非常麻烦,接下来教给大家一个清晰明白的配置,分门别类的配置不同的xml文件。

1.创建Maven工程(Web项目项目工程目录如图)

2.在pom.xml分别导入相关依赖

  <dependencies>
    <!--spring配置依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>6.1.11</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>6.1.10</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>6.1.11</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>6.1.10</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.22</version>
    </dependency>
    <!-- SpringMVC配置依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>6.1.11</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.13.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.17.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.17.2</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.34</version>
    </dependency>
    <!--Mybatis配置依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.13</version>
    </dependency>
    <!--Mybatis整合spring 依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>3.0.3</version>
    </dependency>
    <!--数据库驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.33</version>
    </dependency>
    <!--数据库连接池-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.22</version>
    </dependency>
  </dependencies>

注意:如果你把MyBatis 映射文件定义在了类路径中还需要在pom.xml中添加资源配置,否则在IDEA中xml文件将无法读取

  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
  </build>

在ssm中由于SpringMVC是Spring的一个子模块所以在整合的时候只需要整合Spring和MyBatis即可。

3.导入数据库配置文件

jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=123456

4.分别创建三个框架的配置文件,在Sping.xml中整合MyBatis

4.1Spring.xml整合了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
               http://www.springframework.org/schema/context/spring-context.xsd">

    <!--MyBatis整合Spring-->
    <!--配置数据源-->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!--配置Mybatis SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:com/easthome/mapper/*.xml"/>
        <property name="configLocation" value="classpath:MybatisConfig.xml"/>
    </bean>

    <!--扫描Mapper接口-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.easthome.mapper"/>
    </bean>
</beans>

4.2SpringMVC.xml(如果使用JSP可自行加入配置视图解析器)

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        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.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
    <!--扫描注解-->
    <context:component-scan base-package="com.easthome"/>
    <!--静态资源过滤-->
    <mvc:default-servlet-handler/>
    <!--开启注解-->
    <mvc:annotation-driven/>
</beans>

4.3MyBatisConfig.xml(MyBatis相关配置大部分已经在整合Spring的配置文件中配置完成,我们可以在该配置文件中配置一些MyBatis其他辅助信息,不用配置也可以根据需要)

<?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>

    <!--起别名-->
    <typeAliases>
        <package name="com.easthome.pojo"/>
    </typeAliases>

</configuration>

5.配置Web.xml(启动web项目时会读取相关配置文件)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	version="4.0">

	<!-- 配置spring -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:Spring.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 配置springmvc -->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:SpringMVC.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
	<!--  配置全局过滤的filter-->
	<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>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

以上就是ssm整合的所有配置文件,接下来进行项目工程的搭建 

6.项目工程搭建

6.1创建实体类

package com.easthome.pojo;
import lombok.Data;
@Data
public class User {
    private int id;
    private String name;
    private String pwd;
}

6.2在mapper包下创建mapper接口

package com.easthome.mapper;
import com.easthome.pojo.User;
import java.util.List;
public interface LoginMapper {
    public List<User> login();
}

 6.3创建接口的映射文件

在创建文件之前需要注意一点,如果在resources资源文件中创建该映射文件需要在该文件夹下创建与mapper接口相同的目录结果,这样在编译时会把接口和配置文件放到同一个目录中,否则可能会报错,错误原因就是如果当我们创建多个映射文件的时候,我们在MyBatis核心配置文件配置映射文件的时候往往使用package标签

  <mappers>
<!--      <mapper resource="com/easthome/mapper/UserMapper.xml"/>-->
      <package name="com.easthome"/>
  </mappers>

这时如果不创建相同目录的话一定会报错。



编译时在同一目录

6.4创建Service层接口和实现类

public interface LoginService {
    public List<User> login();
}


@Service
public class LoginServiceImpl implements LoginService {
    @Autowired
    private LoginMapper loginMapper;
    @Override
    public List<User> login() {
        return loginMapper.login();
    }
}

6.5创建Controller层

@RestController
public class LoginController {
    @Autowired
    private LoginService loginService;

    @RequestMapping("/login")
    public  User login(@RequestBody User user){
        System.out.println(user);
        return user;
    }

    @GetMapping("/login")
    public List<User> login(){
        System.out.println(loginService.login());
        return loginService.login();
    }
}

6.6数据库

CREATE DATABASE `mybatis`;

USE `mybatis`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`id` INT(20) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
`pwd` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT  INTO `user`(`id`,`name`,`pwd`) VALUES (1,'阿渌','123456'),(2,'张三','abcdef'),(3,'李四','987654');

6.7最后通过Postman测试j接口就通过啦!!!

通过上述步骤就可以整合Spring,SpringMVC以及MyBatis啦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值