精华内容
下载资源
问答
  • SpringBoot Web项目结构梳理

    千次阅读 2019-01-08 14:35:07
    讲道理,每个项目都有自己的结构,大家都各不相同,这里讲一个我比较喜欢Web项目模块结构风格,感觉还不错,整体项目结构清晰。 一、项目结构说明 项目整体结构如下: ftp_server ftp_server-api ftp_server-...

    摘要

    讲道理,每个项目都有自己的结构,大家都各不相同,这里讲一个我比较喜欢Web项目模块结构风格,感觉还不错,整体项目结构清晰。

    一、项目结构说明

    项目整体结构如下:

    ftp_server

    • ftp_server-api
    • ftp_server-service
    • ftp_server-web

    1、其中api为该项目对外提供的接口,其中主要为dubbo接口。
    2、service主要为业务实现,以及一些dao层操作,其中也包含了api中对外接口实现。
    3、web主要提供对外的web接口,主要提供http服务等,当web端需要调用service层业务时,也采用dubbo形式调用service模块,所以web端需要提供正常服务时,service服务必须正常提供。

    结构说明:其中ftp_server为parent包含了三个模块,api、service以及web三个子模块。web和service之间采用dubbo形式调用,当需要web端提供服务时,service也必须给web模块提供正常的服务,这样做的好处在于service模块较为独立,可以单独启动,当有另一个系统需要调用该系统的service模块时,直接启动service模块即可。

    二、关于pom文件

    其中ftp_server为所有模块的父级,所以该目录的pom中的依赖会被继承,并且该pom文件中添加三个子模块,如下,形成这种依赖关系,当父模块直接打包时,会把所有子模块都一起打包。

    <modules>
        <module>ftp_server-api</module>
        <module>ftp_server-service</module>
        <module>ftp_server-web</module>
    </modules>
    

    其中,子模块不需要写groupId以及artifactId以及版本号,直接继承父模块即可,当版本升级的时候统一升级,防止版本错乱问题。

    三、项目示例

    采用该结构的项目已上传至gitub,示例项目地址

    展开全文
  • Springboot项目的分层结构

    千次阅读 2020-04-23 11:56:35
    用于存放Springboot相关的配置类,包括启动类。 2.Controller:请求入口 所有请求的入口,前后端交互的入口。 3.Service:逻辑层 负责所有的业务逻辑 4.Mapper层:持久层 或叫Dao,持久层,负责java和数据库交互。...

    1.Config:所有的配置
    用于存放Springboot相关的配置类,包括启动类。
    2.Controller:请求入口
    所有请求的入口,前后端交互的入口。
    3.Service:逻辑层
    负责所有的业务逻辑
    4.Mapper层:持久层
    或叫Dao,持久层,负责java和数据库交互。包括interface和xml两类文件。
    5.Domain:表映射实体
    或叫Po,用一个java类来映射数据库表,类名相当于表名,类的属性表示表的字段。
    6.Dto:数据传输对象
    数据传输对象(Data Transfer Object),用于前后端数据交互。

    注:Domain类的属性和表的字段一致;Dto类的属性一般和表一致,但会根据不同的业务场景适当增加减少属性。Domain类主要用于Java数据和数据库表记录的映射;用在Service层和Mapper层。Dto用在Controller和Service层。

    展开全文
  • 这个让我比较困惑:它的功能是做两个字符串或日期的比较,但嵌套的层级比较多。 1.AttributeConditionOperationEnum:这个枚举类决定了比较的方向(小于大于相似) 2.AttributeTypeEnum:将多种类别的比较做成枚举...

    最基础的:controller,service,util,model
    常见的:exception,handler,constant,listener,config
    陌生的:holder,DataSource.marker,cache,comparator.attribute,

    config解释:

    @Configuration定义配置类,跟xml文件里的<Beans>做映射,@bean=<Bean>,存在bean不生效的情况'使用了默认的装配'使用@Primary解决
    @mapperscan注解:一般做do和tem绑定,在整个类里,需要注意的就是datasource。
    

    DataSource.marker

    实际上就是一些接口,用于做标记,作用跟自定义注解类似,但使用更为方便,不过需要在使用到的地方支持对接口做校验
    比如多数据源配置:MasterDataSourceMarker,依托于mapperscan的值’markerInterface’,然后连接信息上使用@ConfigurationProperties,映射到对应的xml文件,这样就实现了主从数据源的连接配置。

    @MapperScan(markerInterface = MasterDataSourceMarker.class,basePackages = 
    {"com.alphaliongroup.account.common.model"},sqlSessionTemplateRef = "masterSqlSessionTemplate")
    和
    public interface AccountTypeDetailAttributeDOMapper extends MasterDataSourceMarker {
    

    cache

    代码书写的原则就是尽可能复用,像cache,在多个地方都会用到,抽出来集中在一起,思路更加清晰。在很多项目里,代码都是在一直做重复,缺点显而易见:代码冗余繁杂,影响后续的业务。
    cahe在项目中的结构

    holder:

    这个命名让我有点奇怪,但它的本质不复杂,就是在干@autowired的活,像这种方式,实际上就是因为在项目没有启动时(一般是测试),spring不能为bean注入,所以选择手动的方式来做注入。当然@SpringBootTest实际上也是有一样的功能(这里暂时存疑,因为没有实践过)。

    public class ApplicationContextHolder {
        private static volatile ApplicationContext context = null;
    
        public static final ApplicationContext getContext(){
            return context;
        }
    
        public static final <T> T getBean(Class<T> clazz){
            return context.getBean(clazz);
        }
    
        public static void setApplicationContext(ApplicationContext applicationContext) {
            context = applicationContext;
        }
    }
    

    exception和handler

    exception没什么可说的,就是自定义异常,一般也只会有message作为异常处理的方法参数。handler则是对应的统一异常返回,需要注意的是返回给前端页面的一般是json格式的数据,需要特别注意。

    /**
     * @author vic 定义全局异常处理
     * @RestControllerAdvice 是@controlleradvice 与@ResponseBody 的组合注解
     */
    @RestControllerAdvice
    @Slf4j
    public class GlobalControllerExceptionHandler {
    
        public static final String NOT_NULL_NOTICE = "should not be null";
    
        @ExceptionHandler(value = {BindException.class})
        @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY)
        public Result bindException(BindException ex) {
            log.error("", ex);
            return Result.fail(ex.getFieldError().getField() + ": " + ex.getFieldError().getRejectedValue()+","+ex.getFieldError().getDefaultMessage());
        }
    

    comparator.attribute:

    这个让我比较困惑:它的功能是做两个字符串或日期的比较,但嵌套的层级比较多。

    1.AttributeConditionOperationEnum:这个枚举类决定了比较的方向(小于大于相似)
    2.AttributeTypeEnum:将多种类别的比较做成枚举类,DATE("date",new DateAttributeConditionMatcher())
    3.AttributeConditionMatcher:接口
    4.DateAttributeConditionMatcher,TextAttributeConditionMatcher:实现
    
    使用:
    AttributeTypeEnum attributeTypeEnum = AttributeTypeEnum.TEXT;
                            if(attributeMap.get(entry.getKey()) != null) {
                                flag = flag && attributeTypeEnum.getMatcher().match(entry.getValue(), 
                                String.valueOf(attributeMap.get(entry.getKey())), enumMapMap.getKey());
    

    listener:

    简单介绍一下通过自定义注解来控制监听的接口
    自定义注解监听可以对请求做监听,kafka topic的监听可以使用直接监听
    通过自定义注解@permission,以及value(这里还写了一个常量类来控制)

    ApplicationListener<ContextRefreshedEvent> :核心接口,实现该接口,补全onApplicationEvent方法,
    我们自定义的监听处理器生效,同时所有的监听上的逻辑处理也在这里完成。
    
    @Permission(Permissions.Account)
    public class AccountController {
    每个接口都绑定了对应的permission,获取到注解,再做对应解析,就能做监听
    步骤
    WorkflowEventDispatcher.addListener(type, workflowListener);
    将所写的监听加入,怎么确定监听范围(接口数量?)
    
    展开全文
  • SpringBoot—分层结构

    2021-02-17 20:14:21
    SpringBoot编程的分层架构 SpringBoot服务端负载均衡集群部署架构 SpringBoot客户端负载均衡集群部署架构 SpringBoot编程的分层架构,三层分别为 Controller 控制层 Service 服务层 Dal 数据层 SpringBoot...

    知识要点

    • SpringBoot编程的分层架构
    • SpringBoot服务端负载均衡集群部署架构
    • SpringBoot客户端负载均衡集群部署架构

    SpringBoot编程的分层架构,三层分别为

    • Controller 控制层
    • Service 服务层
    • Dal 数据层

    在这里插入图片描述

    SpringBoot服务端负载均衡集群部署架构

    SpringBoot客户端负载均衡集群部署架构

    展开全文
  • SpringBoot项目目录结构 代码及其配置文件的目录 :src/main/java/com/example.springboot config —— 存放配置文件 constant —— 配置信息类 consist —— 常亮接口类 controller —— 前端控制器 domain —— ...
  • 实战用Eclipse新建或导入SpringBoot项目

    千次阅读 2019-03-18 11:06:15
    9.创建或导入springboot项目 1.eclectic 左上角 file -> new -> maven project 出现下图默认就好,也可以根据自己需要进行修改 ,点next。 2.点击next出现下图,选择ora.apache.maven.archetypes maven-...
  • SpringBoot项目搭建

    千次阅读 多人点赞 2021-03-01 18:40:06
    该文使用IDEA搭建SpringBoot项目。并配置日志打印 AOP mybatis语句打印 Result结果集等等。 二.项目搭建 1.File->new->project 2.Spring initializr --->选择JDK版本 --->Next 3.配置相关路径及...
  • SpringBoot对Maven父子多项目结构管理

    千次阅读 2019-11-24 23:11:10
    一、项目结构图 二、父工程mybatis_dubbo_nacos_parent项目pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=...
  • Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示: 1、war包目录结构分析 WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。 ...
  • 1、前提:项目添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <...
  • -- 应为springboot项目依赖于官方的父工程,因此需要添加该依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE...
  • 1.SpringBoot项目结构 2.构建springBoot项目 项目基本层级关系 添加依赖 添加父模块依赖 添加子模块(API)依赖 添加model子模块maven依赖 添加server子模块依赖 ...
  • 一、手把手教你创建springBoot项目

    千次阅读 2019-01-03 17:36:35
    之前就接触过springboot作为框架的项目,但是不是我自己搭建的,当时看了一下结构,和spring项目比,springboot采用注解方式简化了配置,废话不多说,咱们就手动搭建一个简单的springboot项目。 注意:现在...
  • springboot项目的整体结构   1 entity package com.lz.palmscore.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import ...
  • 与传统的maven工程不同,SpringBoot项目的目录结构在其基础上做了添加 /src/main 项目根目录 /java Java源代码目录 /resources 资源目录 /resources/static 静态资源目录,如css,js,图片等静态文件 ....
  • 目录结构 Maven所提倡的目录结构当前已经成为事实上的行业标准,Gradle在默认情况下也采用了Maven的目录结构,这对于多数项目来说已经足够了。此外,除了Java代码,项目中还存在其他类型的文件,比如Gradle插件的...
  • IDEA创建多个模块Maven SpringBoot项目

    千次阅读 2019-10-30 09:37:14
    在学习springboot整合dubbo时,需要创建一些maven工程,结构目录如下: springboot-dubbo-parent pom类型,定义公共的依赖信息 ——springboot-dubbo-public-api-service pom类型,存放公共接口 ————...
  • 项目结构及idea包层级结构设置以及项目目命名规范
  • 文章目录一、准备工作二、创建基础web项目1. maven配置2.创建maven项目、配置pom.xml为...快捷生成三、springboot配置文件1.application.properties2.application.yml3.获取配置文件内容到javabean4.@Configuratio...
  • New->Project-> 选择Empty Project 如图所...open打开这个空 项目,创建parent父类springboot项目,直接点击next就可以 注意这里 他给的默认文件夹让你创建在basics下边但是你不能这样必须修改一下不然...
  • IDEA 创建SpringBoot多级Maven父子项目

    千次阅读 多人点赞 2019-12-10 21:53:51
    一级项目完整`pom.xml`配置2、创建二级Maven子项目附: 二级子项目完整`pom.xml`配置3、创建三级Springboot项目附: 三级子项目完整`pom.xml`配置如何改变文本的样式插入链接与图片如何插入一段漂...
  • 背景了解:新建的SpringBoot 项目,觉得目录层级不够深,于是把com.jiaque改成了com.jiaque.walk 启动后报以下错误 原因:改变了主类WalkApplication的位置,但是配置文件配置的扫描路径还是修改前...
  • 通过Idea创建SpringBoot项目 一.首先我们通过Idea创建一个新项目 二.选择sdk和快速构建模板 三.填写项目基本信息 三.选择项目依赖 四.填写项目名和本地项目路径 六.完成项目创建,查看项目...
  • 一、前言 本项目使用的环境及版本: 开发工具:Intellij IDEA 2017.3.4 Maven版本:3.3.9 SpringBoot:2.3.7.RELEASE jdk:1.8.0_171 mysql:5.6.49 ...2.创建SpringBoot项目 参考如下 IDEA使用Spr
  • 一、在公司实习快一个月了,看了项目结构才知道,哇,复杂,好厉害。然后有一个maven项目引用,api项目导入了service层的项目依赖,直接使用service项目中的一些类,使用的很舒服,不用在copy同样的类了,哈哈哈,这...
  • 下面详细谈谈我的第一个springboot项目搭建,希望会给还在摸索的同学一点帮助。 项目说明: 开发环境:Eclipse 4.42 框架:Springboot 工具:Maven 前端:Html、Thymeleaf 后台:Hibernate 数据库:Mysql ...
  • mysql数据库的部门表结构: 需求:将部门的树形结构数据已JSON形式返回给前端 解决思路: 1、先获取当前部门的所有父级节点, 2、再获取当前部门的所有子节点, 3、查询组合(父级节点、当前节点、子节点组合...
  • Springboot源码结构预览

    2021-06-13 09:36:41
    一、Springboot源码结构预览 二、Springboot运行原理 三、Springboot源码流程构造分析 四、Springboot运行流程构造分析 五、Springboot Web应用源码解析 文章目录系列文章目录概述二、Springboot源码1.源码获取2....
  • SpringBoot项目 + 企业微信授权项目背景需求描述新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,322
精华内容 1,328
关键字:

springboot项目层级结构

spring 订阅