您的位置:首页 > 娱乐 > 明星 > 整合JavaSSM框架【超详细】

整合JavaSSM框架【超详细】

2024/10/6 8:40:04 来源:https://blog.csdn.net/ntr851217/article/details/139782251  浏览:    关键词:整合JavaSSM框架【超详细】

在整合SSM之前我们首先要知道SSM框架指的是哪些框架?

Java的SSM指的是SpringSpring MVCMyBatis这三个框架

Spring框架

什么是Spring?

Spring是一个支持快速开发Java EE应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发Java EE应用程序的必备。

Spring框架的特点

  • 依赖注入(DI):通过配置文件或注解,实现对象的依赖注入,简化了对象的创建和管理
  • 面向切面编程(AOP):支持AOP,允许将横切关注点(如日志记录、事务管理)分离出来,减少重复代码
  • 模块化设计:Spring框架是模块化的,包含多个子项目(如Spring Core、Spring Data、Spring Security等),可以根据需要选择使用

SpringMVC框架

什么是SpringMVC?

Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异。

Spring MVC框架的特点

  • MVC架构:实现了Model-View-Controller设计模式,分离了业务逻辑、视图和控制器,组织结构清晰。
  • 注解驱动: 支持基于注解的配置,简化了开发工作。
  • 数据绑定和验证:提供了强大的数据绑定和表单验证功能,简化了用户输入处理。

MyBatis框架

什么是Mybatis?

Mybatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

MyBatis框架的特点

  • SQL映射:通过XML或注解配置,将SQL语句与Java方法进行映射,开发人员可以直接编写原生SQL。
  • 动态SQL:支持动态生成SQL语句,灵活处理复杂的查询需求。
  • 简化的持久层开发:简化了数据库操作的代码编写,减少了样板代码。

创建Java项目

我这里使用的编译器版本:Intellij IDEA 2023.3.4
SDK版本:1.8
Tomcat版本:9.0.87
当然其他版本的项目创建可能略有差别。

新建一个Java项目

image.png

创建一个web模块

选择File->Project Structure
image.png
添加一个Web Module
image.png
提示没有任何工件,创建一个新工件
image.png
应用并完成
image.png

创建resources文件夹和lib文件夹

创建一个resources文件夹
image.png
标记为资源根目录
image.png
同样的在WEB-INF文件夹下创建一个lib文件夹
image.png

添加Tomcat

image.png
点击+号,选择Tomcat Server
image.png
这里提示没有任何工件被标记为依赖,这里修复一下,然后点击ok确认即可
image.png
在File->Project Structure中,添加Tomcat的依赖
image.png
选择Tomcat9.0.87,选择应用即可
image.png
最后可以在web文件夹下创建一个index.jsp测试一下
image.png
这样就完成了初步项目的创建工作

整合SSM框架

整合SSM框架的目的:利用各个框架的优势,将其集中在一个项目中进行使用

准备依赖文件

Spring所需的依赖文件

spring-beans-4.3.3.RELEASE.jarspring-context-4.3.3.RELEASE.jarspring-core-4.3.3.RELEASE.jarspring-expression-4.3.3.RELEASE.jaraopalliance-1.0.jaraspectjweaver-1.8.9.jarcommons-logging-1.2.jarspring-aop-4.3.3.RELEASE.jarspring-aspects-4.3.3.RELEASE.jar

Spring MVC所需的依赖文件

commons-fileupload.jarcommons-io.jarjstl.jarspring-web-4.3.3.RELEASE.jarspring-webmvc-4.3.3.RELEASE.jarstandard.jar

MyBatis所需的依赖文件

mybatis-3.4.4.jarmybatis-spring-1.3.0.jarmysql-connector-java-8.0.17.jarspring-jdbc-4.3.3.RELEASE.jarspring-orm-4.3.3.RELEASE.jarspring-tx-4.3.3.RELEASE.jardruid-1.2.8.jar

将所需的依赖文件导入项目

选择全部依赖并标记
image.png
image.png

准备数据库配置

数据库:mysql
数据库管理软件:Navicat Premium 16
数据库名:schooldb
image.png
表名:sys_users
字段
image.png
最后添加两条测试数据
image.png

整合Spring框架和MyBatis框架

编写Spring配置文件

在resources资源目录中创建一个spring配置文件
image.png
如下图所示:
image.png
创建一个mysql的属性配置文件
image.png
创建mysql.properties
image.png
写入数据库配置信息

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/schooldb?serverTimezone=UTC
mysql.username=root
mysql.password=123456

这里的schooldb是数据库名
image.png
在src下新建包,分别为service,pojo,dao,controller
例如:
image.png
在resources目录下创建一个mappers目录用来存放映射文件
image.png
在applicationContext下写入以下内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!--1.引入外部资源文件--><context:property-placeholder location="classpath:mysql.properties"/><!--2.配置数据源--><bean id="ds" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${mysql.driver}"/><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/></bean><!--3.配置mybatis--><!--(1)使用mybatis的配置类配置mybatis--><bean id="config" class="org.apache.ibatis.session.Configuration"><!--开启驼峰命名--><property name="mapUnderscoreToCamelCase" value="true"/><!--配置日志的输出方法--><property name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/></bean><!--(2)配置sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!--配置mybatis的配置内容--><property name="configuration" ref="config"/><!--配置类型别名--><property name="typeAliasesPackage" value="edu.shifan.pojo"/><!--配置mapper映射文件的自动扫描位置--><property name="mapperLocations" value="classpath:mappers/*.xml"/><!--配置数据源--><property name="dataSource" ref="ds"/></bean><!--(3)配置mapper(接口文件的扫描位置)--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--配置Mapper映射接口的扫描位置--><property name="basePackage" value="edu.shifan.dao"/></bean><!--4.配置事务管理器--><bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="ds"/></bean><!--5.配置Aop--><!--(1)配置消息:配置消息的处理方式--><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="add" propagation="REQUIRED"/><tx:method name="update" propagation="REQUIRED"/><tx:method name="del*" propagation="REQUIRED"/><tx:method name="find*" read-only="true"/></tx:attributes></tx:advice><!--(2)配置切点--><aop:config><aop:pointcut id="txPointCut" expression="execution(* edu.shifan.service.*.*(..))"/><!--把消息和切点链接到一起--><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/></aop:config><!--6.开启注解扫描--><context:component-scan base-package="edu.shifan"/><!--7.启用注解驱动--><tx:annotation-driven transaction-manager="txManager"/>
</beans>

注意:这里报错是因为还没有在mappers目录下添加mapper映射文件
image.png

整合Spring MVC框架

编写Spring MVC配置文件

在resources目录下创建一个springmvc-config.xml的配置文件
image.png
如下图
image.png
在springmvc-config文件中写入下面的内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--1.配置视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean><!--2.开启注解扫描--><context:component-scan base-package="edu.shifan.controller"/><!--3.开启统一资源处理--><mvc:default-servlet-handler/><!--4.开启注解驱动--><mvc:annotation-driven/></beans>

配置前端控制器

在web.xml文件下写入配置信息

<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/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"><!-- 1、配置全局参数(包含了Spring的配置文件位置)--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 2、配置监听器--><!-- 配置ContextLoaderListener(加载Spring容器——ApplictionContext)--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 3、配置前端控制器 --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-config.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

为了方便视图管理,这里在web/pages下存放视图,创建一个pages,如下图
image.png

测试

编写实体类

在pojo包下创建一个实体类User

package edu.shifan.pojo;import java.io.Serializable;public class User implements Serializable {private Integer userId;private String userName;private String account;private String pwd;private String url;private Integer state;@Overridepublic String toString() {return "User{" +"userId=" + userId +", userName='" + userName + '\'' +", account='" + account + '\'' +", pwd='" + pwd + '\'' +", url='" + url + '\'' +", state=" + state +'}';}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public Integer getState() {return state;}public void setState(Integer state) {this.state = state;}
}

编写Dao类

在dao包下创建一个UserDao

package edu.shifan.dao;import edu.shifan.pojo.User;
import org.springframework.stereotype.Repository;import java.util.List;/*** Dao层*  Mapper映射接口*/
@Repository
public interface UserDao {/*** 查询所有用户信息列表* @return*///@Select("select * from sys_users")List<User> findAll();
}

编写mapper映射

在mappers文件夹下新建一个UserMapper.xml映射文件
image.png

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="edu.shifan.dao.UserDao"><!-- 查询所有用户信息列表 --><select id="findAll" resultType="User">select * from sys_users</select>
</mapper>

编写service类

在service包下创建一个UserService的Java类

package edu.shifan.service;import edu.shifan.dao.UserDao;
import edu.shifan.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {//以自动装配的方式实例化Dao对象@Autowiredprivate UserDao userDao;/*** 查询所有用户信息列表*/public List<User> findAll(){return  userDao.findAll();}}

编写Controller

在controller包下新建一个UserController的Java类

package edu.shifan.controller;import edu.shifan.pojo.User;
import edu.shifan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import java.util.List;/*** 控制层*/
@Controller
@RequestMapping("/user/")
public class UserController {//以自动装配方式实例化Service对象@Autowiredprivate UserService userService;/*** 调用后查询所有数据*/@RequestMapping("query")public ModelAndView query(){//调用Service对象的方法查询数据List<User> list = userService.findAll();//输出查询结果System.out.println(list);//ModelAndView将数据传递给前端页面ModelAndView mv = new ModelAndView("show");//将数据添加到作用域mv.addObject("data",list);return mv;}
}

编写视图

在pages目录下创建一个show.jsp的页面

<%--Created by IntelliJ IDEA.User: 19585Date: 2024/6/18Time: 10:47To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>show.jsp页面</title></head><body><h2>show</h2><hr>${data}</body></html> 

访问

启动Tomcat并访问http://localhost:8080/Java_ssm_Web_exploded/user/query
image.png

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com