分享

SSM框架的8个重要配置文件讲解

 灬渔游水清清灬 2020-02-18

Hello,大家周一早上好,搜狗测试又和大家见面了。

目前小编在测试过程中接入了一条新的业务线,使用的框架和小编原来PHP业务线体系完全不同,新的业务线使用了Java,配合市面上主流的Spring+SpringMVC+Mybatis(以下简称为SSM框架),构成了新业务线后端的主要架构。

今天小编就为大家来讲解一下SSM框架中,8个重要配置文件的作用吧。

SSM框架介绍:

1.Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

2.SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

3.MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

SSM框架主目录用途解释:

目录主要分为以下几个模块,在网上找了一块详细的介绍,大家可以参考一下。小编在这里就不过多的解释了。

文件名作用
src根目录,没什么好说的,下面有main和test。
main主要目录,可以放java代码和一些资源文件。
java存放我们的java代码,这个文件夹要使用Build Path -> Use as Source Folder,这样看包结构会方便很多,新建的包就相当于在这里新建文件夹咯。
resources存放资源文件,譬如各种的spring,mybatis,log配置文件。
mapper存放dao中每个方法对应的sql,在这里配置,无需写daoImpl。
spring这里当然是存放spring相关的配置文件,有dao service web三层。
sql其实这个可以没有,但是为了项目完整性还是加上吧。
webapp这个貌似是最熟悉的目录了,用来存放我们前端的静态资源,如jsp js css。
resources这里的资源是指项目的静态资源,如js css images等。
WEB-INF很重要的一个目录,外部浏览器无法访问,只有羡慕内部才能访问,可以把jsp放在这里,另外就是web.xml了。你可能有疑问了,为什么上面java中的resources里面的配置文件不妨在这里,那么是不是会被外部窃取到?你想太多了,部署时候基本上只有webapp里的会直接输出到根目录,其他都会放入WEB-INF里面,项目内部依然可以使用classpath:XXX来访问,好像IDE里可以设置部署输出目录,这里扯远了~
test这里是测试分支。
java测试java代码,应遵循包名相同的原则,这个文件夹同样要使用Build Path -> Use as Source Folder,这样看包结构会方便很多。
resources没什么好说的,好像也很少用到,但这个是maven的规范。

对于文中,主要的几个(开发结构下)子目录的左右的放在这里,大家可以参考一下。

包名名称作用
dao数据访问层与数据打交道,可以是数据库操作,也可以是文件读写操作,甚至是redis缓存操作,总之与数据操作有关的都放在这里,也有人叫做dal或者数据持久层都差不多意思。为什么没有daoImpl,因为我们用的是mybatis,所以可以直接在配置文件中实现接口的每个方法。
entity实体类一般与数据库的表相对应,封装dao层取出来的数据为一个对象,也就是我们常说的pojo,一般只在dao层与service层之间传输。
dto数据传输层刚学框架的人可能不明白这个有什么用,其实就是用于service层与web层之间传输,为什么不直接用entity(pojo)?其实在实际开发中发现,很多时间一个entity并不能满足我们的业务需求,可能呈现给用户的信息十分之多,这时候就有了dto,也相当于vo,记住一定不要把这个混杂在entity里面,答应我好吗?
service业务逻辑(接口)写我们的业务逻辑,也有人叫bll,在设计业务接口时候应该站在“使用者”的角度。额,不要问我为什么这里没显示!IDE调皮我也拿它没办法~
serviceImpl业务逻辑(实现)实现我们业务接口,一般事务控制是写在这里,没什么好说的。
web控制器springmvc就是在这里发挥作用的,一般人叫做controller控制器,相当于struts中的action。

pom.xml文件

这里不过多介绍,maven用来管理原来eclipse中没有maven里面的lib目录。我这里放上我搭建环境的pom文件的几个重要节选,可以给大家作为参考。

Junit的依赖包

打印log日志的package,也可以用log4j,看自己喜好。

连接数据库的jar包

Mybatis核心jar包。

Servlet核心依赖包(java+前端代码)

Spring的核心依赖包

DAO和Spring web相关的核心包。

Utill相关的jar包

Spring相关的配置文件,(只要分为三个配置文件分别是daoservice web)

Spring-dao.xml文件

正如名字一样,这里负责了dao层的接口,动态实现dao层。不需要实现daoimpl,所有数据库的操作都在xml中进行(包含sql)

配置了关于数据库的一些相关信息。

配置了数据库的相关属性,这里用的javabean,是spring中的单例模式。

注入sessionFactory对象,这里的单例配置了mybati的实例和mybatis关联了起来,这样mybatis里面的mapper就能引用了。

配置动态扫描的Dao接口包,注入到Spring容器里面。

Jdbc不过多重复,不过这里友情提示:配置文件中的jdbc.username,如果写成username,可能会与系统环境中的username变量冲突,所以到时候真正连接数据库的时候,用户名就被替换成系统中的用户名(有得可能是administrator),那肯定是连接不成功的。

因为这里用到了mybatis,所以需要配置mybatis核心文件,在recources文件夹里新建mybatis-config.xml文件。

使用自增主键

使用列别名

开启驼峰命名转换create_time -> createTime

spring-service.xml

扫描service包所有注解@Service

配置事务管理器,把事务管理交由spring来完成

配置基于注解的声明式事务,可以直接在方法上@Transaction

spring-web.xml

这里提供了Springmvc的配置,开启了SpringMVC的注解模式,也就是annotation这里

加入servlethandler,这里个静态资源的处理如js,gif,png都是交给servlet配置。

配置所有的url在前端进入之后,都会在配置的主路径后加入这里的prefix配置,并在controller的return的view后面加上.jsp结尾(suffix)

Return list+.jsp 前端访问路径自动加上/WEB-INF/jsp/

这里的引入了web文件下的controller相关的文件,也就是url相关的路由。(第三步)

web.xml文件

配置SpringMVC的需要加载的文件,目前为spring-*.xml包含了三个文件

这里配置了哪些请求可以进入。

logback.xml

我们在项目中经常会使用到日志,所以这里还有配置日志xml,在resources文件夹里新建logback.xml文件,所给出的日志输出格式也是最基本的控制台s呼出,大家有兴趣查看logback官方文档。

到目前为止,我们一共写了8个配置文件,我们一起来看下最终的配置文件结构图。

最后

本文只介绍了简单入门的配置文件,希望各位小伙伴们还是能够自己动动手,搭建一下和开发配合测试环境,只有这样才能够对于开发的体系了解更多,帮组开发去发现,定位更多的问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多