admin 管理员组

文章数量: 1086019


2024年3月11日发(作者:备份linux系统)

基于SpringBoot+SSM框架的Web应用系统搭建与实现

朱运乔

(湖北职业技术学院,湖北孝感432000)

摘要院对SpringBoot框架作了简单介绍,并对其主要技术特点进行了简要阐述。然后以一个Web应

用为例,展示了SpringBoot+SSM框架的Web应用搭建过程。该应用前端采用Bootstrap、Thymeleaf模

板引擎等框架,后台利用SpringBoot对SSM框架进行整合,并给出了基于该框架的功能实现和关键

代码。

关键词院SpringBoot框架;SSM框架;Web应用系统;功能实现

1概述

从生成各种Spring框架的角度看袁SpringBoot的最大

特点就是框架整合和自动配置遥

2.1Spring框架整合

SpringBoot将流行的组件框架的依赖库进行了分组

当前袁大多优秀的企业级Web应用是由Java相关

的技术框架搭建和开发袁最具代表性的JavaWeb框架有

SSH尧SSM以及SpringMVC+Hibernate袁这些框架技术目

前已非常成熟袁行业采用都很普遍袁在这些框的基础上

开发的Web应用具有开发成本低尧开发周期短尧易于

扩展和后期维护遥但是袁不管是上述哪种架构袁都存在

一个共同缺点袁在系统开发过程中袁需要进行大量的配

置工作袁特别是软件开发初期需要对编写大量xml配置

文件袁以对系统各部分进行有效整合和正确配置袁严重

影响了代码开发效率袁提高了技术门槛袁特别对于一个

新手是望而却步遥SpringBoot的到来这些问题都迎刃而

解袁它使用野约定优于配置冶的理念袁使得一个

JavaWeb项目快速搭建及运行起来遥使用SpringBoot很

容易创建一个独立运行尧基于Spring框架的项目袁并且

开发过程中可以不用或只需要很少的Spring配置遥

以一个学生信息模块为例袁详细介绍SpringBoot框

架的技术特点及原理袁然后展示如何利用SpringBoot将

Spring尧SpringMVC尧MyBatis各部分整合起来并搭建成

一个SSM框架的实现过程遥

整合袁如SSH尧SSM等袁并将其合并到一个依赖库中袁

这样就可以一次性添加到项目的Maven或Gradle构建中遥

的框架或组件袁当应用需要某个框架或组件袁只需选取

对应的starterpom袁并将其加入到Maven项目依赖库

中袁比自己到超市选商品还要容易遥例如袁当需要

SpringMVC袁只需在Maven中加入spring-boot-starter-

web袁如需要支持MyBatis袁只需在Maven中加入my鄄

batis-spring-boot-starter袁如需要Hibernate只需在

SpringBoot官方提供了很多starterpom来整合不同

Maven中加入spring-boot-start-jpa袁每个starterpom添

加到Maven后袁将自动添加所依赖的jar包组袁也不用

关心版本问题遥

2.2自动配置Spring

以往通常搭建一个基于Spring的Web应用袁需要

很多工作袁比方先要在pom文件中引入一系列相关jar

包袁接着在进行Listener配置尧Filter配置尧

Servlet配置等袁然后配置数据库连接尧配置Spring事

务尧配置视图解析器袁最后还要开启注解尧自动扫描功

boot后袁一切都变得很简便快速遥

能噎袁搭个项目框架就得花费相当的精力遥而用Spring鄄

在SpringBoot中袁Spring容器配置采用基于Java代

2SpringBoot技术

来进行快捷Spring应用开发袁采用野约定大于配置冶的

原则袁在使用SpringBoot时只选择合适的框架或组件袁

SpringBoot就可以生成一个企业级的Spring应用项目遥

简单的说袁SpringBoot就是整合了很多优秀的框架袁不

用自己手动去写一堆xml配置然后进行配置遥本质上

SpringBoot就是Spring袁它做了那些复杂而必须的Spring

Bean配置遥

SpringBoot是一个用以简化Spring开发的框架遥用

作者简介:朱运乔渊1971-冤袁男袁副教授袁本科袁研究

方向院数据库系统及应用尧软件开发遥

收稿日期:2019-07-19

2019.10

23

码方式和注解方式袁以代替传统的xml配置袁并且

SpringBoot

数应用场景

为我们提供的相应框架

野约定和习惯冶在Spring

starter

容器中进行自动配

pom袁按大多

置遥只要使用了应用场景所需的starterpom袁相关的技

术配置将会消除袁就可以得到SpringBoot提供的自动配

置的Bean袁如果有特定要求或要进一步优化袁可以在

ties

3系统实现

中按具体要求作相应设置遥

下面以一个学生信息管理模块为例来展现如何利用

SpringBoot

构袁以及该应用的具体设计与实现过程

整合Spring+SpringMVC+MyBatis

渊SSM冤架

3.1

整体架构的搭建准备

SpringBoot应用拟采用的整体结构为院该应用采

用前端利用Bootstrap袁页面模板采用thymeleaf模板引

擎袁取代JSP模板曰后台利用SpringBoot对SSM框架进

行整合遥

跟据SSM框架的所包含的主要组件要求袁只需该

SpringBoot

pom及jar

应用的

包库袁最小系统

Maven中需要添加表

渊框架冤即可完成

1列举的

袁如图

starter

所示遥

1

表1系统所需starterpom及jar包

spring-boot-starter-web

starterpom及组件

添加并自动配置

添加并自动配置

spingMVC尧

说明

mybatis-spring-boot-startermybatis数据源

内置的

尧会话

tomcat

尧事务等

mysql-connector-java

spring-boot-starter-thymeleaf添加并自动配置

支持mysql驱动

thymeleaf页面模板引擎

request

Model

response

Controller

Service

MyBatis

Mysql

渊thymeleaf

Html页面视图

引擎冤

View

图1系统整体结构

3.2

数据库涉及到两个表

数据库设计

院班级表(tb_clazz)袁学生表

(tb_student)遥如表

2袁

2

班级表

3所示

(tb_clazz)

列名类型说明

code

idint(11)自增主键

name

varchar

varchar

(18)

(18)

班级代码

班级名

24

2019.10

表3学生表(tb_student)

列名类型说明

name

id

varchar

int学生编号自增主键

varchar

(18)姓名

性别

clazz_id

age

sex

int

(18)

int外键袁引用班级

年龄

id

3.3

项目生成后主要包含的项目模块

项目模块结构组成

袁如图2所示遥

图2

Boot的入口

包含SpringBoot启动类袁为Spring鄄

两个实体类

为数据实体包

袁其中包含

ller

控制类袁接收前端的

为控制器包

request

袁包含

请求

为MyBatis

StudentMapper.

的ORM映射

接口包袁其中包含有

java映射接口袁并在接口中直接包含映射注解曰

e包含业务逻辑功能接口

类遥

包含业务逻辑实现

3.4

3援4援1

关键代码

整个系统免

应用程序配置

xml配置袁已经按前面所选starterpom

进行了自动配置袁只需在ties中添加

MySQL

:jdbc:mysql://localhost:3306/

连接院

mybatis?characterEncoding=utf-8

#用户

me:XXX

#密码

rd:XXX

-class-name:.

3援4援2映射接口代码

3援4援4控制器类实现代码

//

@Mapper//映射注解袁spring容器自动生成Bean

publicinterfaceStudentMapper{

@Select("SELECT*FROMtb_student")

@Results(id="studentMap",value={//多对一映射袁

//通过clazz_id列映射到班级

@Result(property="clazz",column="clazz_id",

javaType=,

one=@One(

select=".

ClazzById",

fetchType=

)

)

})

ListselectStudents();

@Select("SELECT*FROMtb_studentWHERE

clazz_id=#{id}")

@ResultMap(value="studentMap")

ListselectStudentByClazzId(Integerid);

}

3援4援3业务逻辑类实现代码

@Service//业务注解袁spring容器自动生成业务Bean

publicclassStudentServiceImplimplementsIStu鄄

dentService{

@Autowired//spring容器自动装配mapper

privateStudentMapperstudentMapper;

@Override

@Transactional//事务注解

publicListselectStudents(){

Students();

}

}

(上接第22页)

模型的研究已日渐得到重视袁还有许多关键技术诸如实

时的用户兴趣挖掘尧兴趣模型的实时更新等尚待解决袁

今后还有更多的课题等待研究遥

参考文献

[1]翼俊忠.贝叶斯网及其在网上智能的应用研究[D].

北京工业大学,2013.

@Controller//由spring容器生成Bean

publicclassStudentController{

@Autowired//自动装配学生处理业务

privateIStudentServicestudentService;

@RequestMapping(value="/student")

publicStringStu(Modelmodel){

Listlist=Stu鄄

dents();

ribute("list",list);

return"stulist";//转向thymeleaf

//模板页面展示结果

}

}

至此袁一个传统SSM框架的Web应用通过Spring鄄

Boot进行了轻松整合并成功实现袁整个过程不需配任何

xml文件袁就将各部分完美黏合在了一起袁并且代码干

快速整合和自动配置等强大功能遥

净袁无侵入污染袁耦合度极低袁这得益于SpringBoot的

4结语

通过对一个基于SpringBoot和SSM框架的Web应

用项目的实现过程进行了全面分析和展示袁旨在说明使

用该体系结构创建的Web应用项目有效解决了传统

SSM框架在开发过程中存在的配置繁琐和效率不高等问

定的指导意义遥

参考文献

[1]深入Springboot原理[EB/OL].

[2]SpringBoot启动机制[EB/OL].

[3]汪云飞.JAVAEE开发的颠覆者SpringBoot实战[M].

北京:电子工业出版社,2016.

北京:电子工业出版社,2017.

[4]疯狂软件.SpringMVC+MYBatis企业应用实战[M].

题袁对于软件开发人员在JavaWeb项目开发过程中有一

[2]高妍方.判别贝叶斯网络的学习算法及其应用研究

[3]唐晓波.基于混合图的在线社交网络个性化推荐系

统研究[J].情报理论与实践,2013.

[D].国防科技大学,2008.

2019.10

25


本文标签: 框架 配置 应用 开发 自动