博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
00-A-springmvc分布式项目项目结构
阅读量:4329 次
发布时间:2019-06-06

本文共 17446 字,大约阅读时间需要 58 分钟。

项目使用IDEA进行开发

 一个分布式项目基本需要的模块。

用到的技术spring+springmvc+mybatis+dubbo +mysql+redis

 

01模块名字:p2p-parent

作为父模块,对其他模块进行管理。

1,idea新建空项目,设置项目保存位置。

2,选择新建模块,选择maven项目类型,不选择具体的模板,建出来是一个有maven基本结构的项目,这个项目作为父模块,可以起名为:xxx(项目名)-parent。

3,修改配置文件,在配置文件添加节点packaging,文本内容为pom:

pom

4,删除src目录,parent项目不需要src目录。

5,配置文件内容:

4.0.0
com.bjpowernode.p2p
p2p-parent
1.0.0
pom
4.3.9.RELEASE
3.1.0
1.2
1.2.1
5.1.43
1.1.1
3.4.1
1.3.0
1.8.9
0.10
2.3
1.8.4.RELEASE
2.9.0
2.6.0
3.4
2.7.3
2.5
4.5.2
1.2.36
org.springframework
spring-context
${spring-version}
org.springframework
spring-aop
${spring-version}
org.springframework
spring-core
${spring-version}
org.springframework
spring-beans
${spring-version}
org.springframework
spring-jdbc
${spring-version}
org.springframework
spring-tx
${spring-version}
org.springframework
spring-web
${spring-version}
org.springframework
spring-webmvc
${spring-version}
org.springframework
spring-oxm
${spring-version}
javax.servlet
javax.servlet-api
${servlet-api-version}
javax.servlet.jsp.jstl
jstl-api
${jstl-api-version}
org.apache.taglibs
taglibs-standard-spec
${taglibs-standard-version}
org.apache.taglibs
taglibs-standard-impl
${taglibs-standard-version}
mysql
mysql-connector-java
${mysql-connector-java-version}
com.alibaba
druid
${druid-version}
org.mybatis
mybatis
${mybatis-version}
org.mybatis
mybatis-spring
${mybatis-spring-version}
org.aspectj
aspectjweaver
${aspectjweaver-version}
com.101tec
zkclient
${zkclient-version}
org.apache.logging.log4j
log4j-api
${log4j-version}
org.apache.logging.log4j
log4j-core
${log4j-version}
org.apache.logging.log4j
log4j-jcl
${log4j-version}
org.springframework.data
spring-data-redis
${spring-data-redis-version}
redis.clients
jedis
${jedis-versino}
com.alibaba
dubbo
${dubbo-version}
org.springframework
spring-context
org.springframework
spring-beans
org.springframework
spring-web
org.apache.commons
commons-lang3
${commons-lang3-version}
com.fasterxml.jackson.core
jackson-core
${jackson-version}
com.fasterxml.jackson.core
jackson-databind
${jackson-version}
com.fasterxml.jackson.core
jackson-annotations
${jackson-version}
commons-io
commons-io
${commons-io-version}
org.apache.httpcomponents
httpclient
${httpclient-version}
com.alibaba
fastjson
${fastjson-version}
org.projectlombok
lombok
1.18.2
provided
maven-compiler-plugin
3.5.1
1.8
1.8
UTF-8

 

02模块:p2p-common

存放工具类和常量类  比如日期帮助类、项目中的一些常量

新建模块,继承自parent,项目模板可以选择maven的quickstart或者不选模板,建出来后具有maven项目基本结构。

com.bjpowernode.p2p  顶级包

com.bjpowernode.p2p.common.constant   存放常量

com.bjpowernode.p2p.common.util  存放工具和帮助类

这是一个很简单的模块,其他模块会依赖该模块。

pom.xml配置文件内容:

p2p-parent
com.bjpowernode.p2p
1.0.0
../p2p-parent/pom.xml
4.0.0
p2p-common

 

 

03模块名字:p2p-exterface

该模块是接口项目,新建模块的时候,需要继承自parent模块,同时选择继承GroupId。

选择模板,可以选择quickstart模板或者不选择模板。

dubbo推荐这种开发模式,该模板存放接口和bean、vo等。

com.bjpowernode.p2p  顶级包package

com.bjpowernode.p2p.model   存放bean的包,包名也可以是domain、beans等

com.bjpowernode.p2p.service  存放业务接口的包。

com.bjpowernode.p2p.vo    存放vo类(全称为Value Object,就是一个普通的JavaBean。一般配合DAO来使用,用于实例化对象。)

继承自parent模块,会在pom文件生成一段配置,这段配置如下,假如新建模块时没有继承自parent,可以直接在配置文件里面写上配置,达到一样的效果。

p2p-parent
com.bjpowernode.p2p
1.0.0
../p2p-parent/pom.xml

具体的配置文件内容:

p2p-parent
com.bjpowernode.p2p
1.0.0
../p2p-parent/pom.xml
4.0.0
p2p-exterface
org.projectlombok
lombok
1.18.2
provided

 

03模块:p2p-dataservice

该模块是dubbo服务提供者。

它要去实现p2p-exterface工程的业务接口,并连接数据库实现数据的持久层

新建模块,继承自parent,模板选择maven项目webapp

com.bjpowernode.p2p  顶级包

com.bjpowernode.p2p.mapper  存放dao接口和mybatis的xml映射文件的包

com.bjpowernode.p2p.service  存放exterface的Service中接口的实现类

 

 

resources中存放配置文件

applicationContext.xml     主要:加载系统配置文件  配置扫描service包的注解  导入数据库相关配置   导入redis相关配置   导入服务提供者配置

applicationContext-datasource.xml  主要:配置数据库连接,阿里数据源 druid 连接池    MyBatis sqlSessionFactory 配置  mybatis的MapperScannerConfigurer自动装配配置、事务控制等。

applicationContext-dubbo-provider.xml  主要:服务提供者应用名称,  配置 zookeeper 注册中心   暴露具体的业务服务

applicationContext-redis.xml   主要:jedis Connection Factory    redis template definition

log4j2.xml   主要:log4j的日志配置 

mybatis-configuration.xml  主要: log4j2 与 mybatis 集成,目的是打印出 sql 语句

redis.properties 主要:redis的连接数据。

WEB_INF配置文件:

web.xml  主要:spring 监听器加载 applicationContext.xml 配置文件    spring 字符过滤器

 

applicationContext.xml 配置文件内容:

 

applicationContext-datasource.xml 配置文件的内容:

 

applicationContext-dubbo-provider.xml  配置的主要内容:

 

 applicationContext-redis.xml  的配置主要内容:

 

log4j2.xml  配置文件内容:

 

mybatis-configuration.xml配置文件内容:

 

redis.properties配置文件主要内容:

#redis configredis.usePool=trueredis.hostName=192.168.127.128redis.port=6379redis.timeout=8000redis.password=123456

 

web.xml配置文件内容:

dataservice application
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*

 

04模块:p2p-web

唯一一个用户能直接访问的工程

它要负责处理用户的请求

dubbo服务的消息者

新建模块,选择maven的webapp模板,继承自parent模块

com.bjpowernode.p2p顶级包

com.bjpowernode.p2p.config   Alipay的配置类等配置信息AlipayConfig

com.bjpowernode.p2p.interceptor   拦截器,验证用户登录状态等

com.bjpowernode.p2p.web   控制器包,处理用户用户请求。

 

resources配置文件

applicationContext.xml  主要:导入 spring mvc 配置    导入服务提供者配置

applicationContext-dubbo-consumer.xml    主要:配置应用名称    配置注册中心   引用服务调用   

applicationContext-mvc.xml  主要:dispatcherServlet 截获所有 URL 请求     spring mvc 扫描包下的 controller     配置注解驱动    配置视图解析器  配置拦截器

log4j2.xml  主要:log4j日志配置

WEB_INF下配置文件

web.xml    主要:字符过滤器,字符编码 UTF-8     Spring mvc 分发 servlet     欢迎页配置

 

applicationContext.xml配置文件内容:

 

applicationContext-dubbo-consumer.xml  配置文件内容:

 

applicationContext-mvc.xml  配置文件内容:

 

log4j2.xml 配置文件内容:

 

web.xml配置内容:

p2p
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext.xml
1
dispatcher
/
dispatcher
/index
index

 

转载于:https://www.cnblogs.com/Tpf386/p/10987931.html

你可能感兴趣的文章
小D课堂 - 新版本微服务springcloud+Docker教程_3-03CAP原理、常见面试题
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-06 服务注册和发现之Eureka Client搭建商品服务实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-07 Eureka服务注册中心配置控制台问题处理...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-03 高级篇幅之Ribbon负载均衡源码分析实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-06 Feign核心源码解读和服务调用方式ribbon和Feign选择...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-02 Netflix开源组件断路器
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-03 feign结合hystrix断路器开发实战上...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-05熔断降级服务异常报警通知
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-08 断路器监控仪表参数
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse...
查看>>