摘要:的子模块我们先讲层,因为我想把配置在这里也说下。长这样我们接下来看看每个子模块如何编写。二子模块搭建子模块搭建子模块配置在将之前,我们先将的配置文件,使用一个全局的配置文件或,我们推荐使用文件。
现在,我们来搭建一个简单的分模块的SSM开发框架吧,
一: 分析并创建项目先来简单分析下我们项目的结构:
比如:我现在搭建一个管理系统,我们把项目分为:
tx-parent 顶级父项目(公司默认有的)
|- tx-manager ---------------------------pom.xml 父项目
|- tx-manager-mapper ---------------数据层 |- tx-manager-common ---------------工具层 |- tx-manager-bean ---------------实体层 |- tx-manager-service --------------服务层 |- tx-manager-web ---------------控制层
至于为什么这么分,我想都应该知道吧,当然是为了代码复用啦。 下面我们一个一个的来分析下。
tx-parent 顶级父项目tx-parent是我们公司的顶级父项目, 是一个pom.xml ,用于管理依赖的。我们这里来看看他的pom.xml的问题。
tx-manager 项目4.0.0 com.topinfo tx-parent 1.0.0-SNAPSHOT pom UTF-8 2.5 2.4 1.1.10 2.5 3.3.2 1.3.2 3.3 2.3.0 aliyun-repos http://maven.aliyun.com/nexus/content/groups/public/ false org.springframework.boot spring-boot-dependencies 2.1.1.RELEASE pom import nz.net.ultraq.thymeleaf thymeleaf-layout-dialect ${thymeleaf-layout-dialect.version} javax.servlet servlet-api ${servlet-api.version} provided net.sf.json-lib json-lib ${json-lib.version} joda-time joda-time ${joda-time.version} org.apache.commons commons-lang3 ${commons-lang3.version} org.apache.commons commons-io ${commons-io.version} commons-net commons-net ${commons-net.version} com.alibaba druid ${druid.version} topinfo-releases Topinfo Release Repository http://192.168.19.82:8081/repository/releases/ topinfo-snapshots Topinfo Snapshot Repository http://192.168.19.82:8081/repository/snapshots/ ${project.artifactId} org.apache.maven.plugins maven-resources-plugin 3.1.0 ${project.build.sourceEncoding} org.apache.maven.plugins maven-compiler-plugin 3.2 1.8 ${project.build.sourceEncoding} org.apache.tomcat.maven tomcat7-maven-plugin 2.2
tx-manager 这个就是我们的管理项目,他也是一个pom.xml项目,主要是用来聚合的,需要继承顶级父项目,然后在依统一的工具项目,最后pom.xml文件长这样:
4.0.0 com.topinfo tx-parent 1.0.0-SNAPSHOT com.topinfo.manager tx-manager 1.0.0-SNAPSHOT pom tx-manager-web tx-manager-service tx-manager-bean tx-manager-mapper com.topinfo tx-common 1.0.0-SNAPSHOT
我想熟悉 maven的人都知道吧,这应该不用多解释吧。接下来我们继续创建所有项目都创建好,然后在配置他们的pom.xml依赖。
tx-manager 的 tx-manager-web 子模块我们先讲web层,因为我想把springboot配置在这里也说下。
简单分析:
1、我们引入spring-boot-starter-web的依赖,因为我们要用到spingmvc
2、我们引入tx-manager-service依赖,因为我们要调用服务层。
3、然后在引入一些其他模板啊,tomcat内嵌的,测试的
如:
tx-manager 的 tx-manager-service 子模块4.0.0 com.topinfo.manager tx-manager 1.0.0-SNAPSHOT tx-manager-web war com.topinfo.manager tx-manager-service 1.0.0-SNAPSHOT org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat provided org.springframework.boot spring-boot-starter-thymeleaf nz.net.ultraq.thymeleaf thymeleaf-layout-dialect org.springframework.boot spring-boot-starter-test test net.sf.json-lib json-lib
服务层肯定是调用dao层,也会调用实体等,具体看pom.xml
tx-manager 的 tx-manager-mapper 子模块4.0.0 com.topinfo.manager tx-manager 1.0.0-SNAPSHOT tx-manager-service com.topinfo tx-common 1.0.0-SNAPSHOT com.topinfo.manager tx-manager-mapper 1.0.0-SNAPSHOT com.topinfo.manager tx-manager-bean 1.0.0-SNAPSHOT
tx-manager-mapper,dao层pom.xml
tx-manager 的 tx-manager-bean 子模块4.0.0 com.topinfo.manager tx-manager 1.0.0-SNAPSHOT tx-manager-mapper com.topinfo.manager tx-manager-bean 1.0.0-SNAPSHOT
实体子模块,暂时什么都不依赖
4.0.0 com.topinfo.manager tx-manager 1.0.0-SNAPSHOT tx-manager-bean
这样,整个项目都创建就完成了,上传svn。长这样:
我们接下来看看每个子模块如何编写。
二: 子模块搭建 1: tx-manager-web 子模块搭建 1: tx-manager-web 子模块配置在将 tx-manager-web 之前,我们先将SpringBoot的配置文件,SpringBoot使用一个全局的配置文件application.properties或application.yml, 我们推荐使用 yml 文件。
在项目内,SpringBoot启动会默认扫描以下位置的:application.properties或application.yml文件。
规则:
按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容如果与低优先级的内容冲突则覆盖,如果不冲突则会去并集。
我们也可以手动的修改其默认读取文件的路径(一般我们不建议做),我们还可以从文件的外部加载,比如:命令行,环境变量等,我们这里不扩展,我们建议使用: 类路径/config 这个目录,如图:
2: tx-manager-web 子模块静态资源静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户通过浏览器直接读取。
在Springboot中默认的静态资源路径有:classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
我们选择classpath:/static/, 我们把图片、js、css等静态资源都存放到这个目录中,如图:
在访问的时候,为了在界面中可以访问js、css等,还需要对静态资源进行路径映射。如:
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry){ //静态资源映射 registry.addResourceHandler ("/static/**").addResourceLocations ("classpath:/static/"); WebMvcConfigurer.super.addResourceHandlers (registry); } }
页面资源通过这样引用
这样页面就可以正常访问了。我这里是去amazeui网站去下载了一个demo, 我最好运行效果:
后
OK , 界面运行起来了。
完善:
为了 http://192.168.90.51:8080/ 也可以访问到login.html
添加一个界面跳转的controller.
/** * @ClassName: PageController * @Description: 页面跳转的Controller * @author: 杨攀 * @date: 2018年12月27日 下午2:38:36 * @Copyright: 2018 www.tuxun.net Inc. All rights reserved. */ @Controller public class PageController { /** * @Description: 打开首页 * @param: @return * @return: String */ @RequestMapping("/") public String showIndex(){ return "login"; } /** * @Description: 其他页面 跳转 * @param: @param page * @param: @return * @return: String */ @RequestMapping("/{page}") public String showpage(@PathVariable String page){ return page; } }
web 层级就先这样,我们接下来处理dao层
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72899.html
摘要:开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章系列处理登录请求前后端分离一使用完美处理权限问题前后端分离二使用完美处理权限问题前后端分离三中密码加盐与中异常统一处理 开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章! Spring Boo...
摘要:接着上一篇,我们在测试可以允许后,我们接着来写一个查询功能,一连接数据库的查询例子我来看看项目的结构顶级父项目公司默认有的父项目数据层 接着上一篇,我们在测试web可以允许后,我们接着来写一个查询功能, 一、 连接数据库的查询例子 我来看看项目的结构: tx-parent 顶级父项目(公司默认有的) |- tx-manager ------------------------...
摘要:一项目简介模仿抖音做的一个短视频微信小程序,用搭建小程序后台,用框架搭建短视频后台管理系统,小程序后台通过分布式监听节点自动下载或删除短视频后台管理系统上传的视频。 一、项目简介 模仿抖音做的一个短视频微信小程序,用SpringBoot搭建小程序后台,用SSM框架搭建短视频后台管理系统,小程序后台通过分布式zookeeper监听节点自动下载或删除短视频后台管理系统上传的视频。 二、环境...
阅读 1474·2021-11-25 09:43
阅读 4025·2021-11-15 11:37
阅读 3159·2021-08-17 10:13
阅读 3486·2019-08-30 14:16
阅读 3515·2019-08-26 18:37
阅读 2472·2019-08-26 11:56
阅读 1105·2019-08-26 10:42
阅读 590·2019-08-26 10:39