当前位置: 首页 > news >正文 深圳团购网站设计哪家好黄骅港到石家庄的客车时刻表 news 2025/10/27 19:11:47 深圳团购网站设计哪家好,黄骅港到石家庄的客车时刻表,国家新闻出版,阿里网站制作需要多少钱jad源码结构说明与项目配置详解 1 前言 JAD项目自上线以来#xff0c;倍受关注#xff0c;然而很多初识这个项目的朋友看着这个项目的源代码觉得一脸懵逼#xff0c;不知道配置在哪里#xff0c;不知道从何下手。本文就从项目源码的结构入手#xff0c;一步步揭… jad源码结构说明与项目配置详解 1 前言 JAD项目自上线以来倍受关注然而很多初识这个项目的朋友看着这个项目的源代码觉得一脸懵逼不知道配置在哪里不知道从何下手。本文就从项目源码的结构入手一步步揭开JAD项目的面纱并带大家详细解读项目的配置。 2 源码结构说明 对于传统的简单开源项目只要下载项目源代码编译后就可以直接使用甚至还可以直接部署并运行。然而JAD项目的源代码要直接编译使用的话暂时还没有比较详细的使用手册等文档做支撑庆幸的是JAD作者开发了一个比较灵活的eclipse插件通过这个插件来帮助我们创建项目并部署运行也可以不用插件创建项目但需要开发人员自己配置这要求开发人员对项目源码的结构很熟悉。JAD之所以这么做是因为JAD作者将这个项目定位在为程序员提供一个高效的自动化开发平台它涉及互联网JAVA后台技术基础架构的方方面面。因为它涉及的技术范围比较大不可能像jeesite或其它的小项目那样下载源码就可以直接安装部署。举个例来说jad项目持久化方面同时支持hibernate、mybatis、spring jpa在缓存方面同时支持ehcache、memcache、redis在权限认证方面即支持简单的认证也支持sso单点登陆在发布部署方面即支持传统单体项目也支持分布式微服务然而在实际项目的实施过程中可能不需要这么多功能比如有些项目只要hibernate、ehcache有些项目只要mybatis针对这么多不同的技术框架组合需要开发人员自己选择性的配置(传统的项目往往只支持hibernate或mybatis底层技术架构比较单一)。JAD项目的这种多技术方案多选择的机制注定了JAD项目的源码不能像传统的项目那样而是JAD源码结构跟用户最终使用的项目的源码结构一致于是也就有了JeeadWizard这个Eclipse插件来帮助我们选择和配置。 在JAD的源代码中作者将hibernate、mybatis、和spring jpa模块组织到一起形成jad的持久化模块(jad-dao)将ehcache、memcache、redis等缓存相关的模块组织到一起组成jad的缓存模块(jad-cache)将dubbo服务调度管理与服务监控等模块组织到一起形成jad-dubbo模块将sso、统一认证中心等模块组织到一起形成jad开放授权模块(jad-oauth)。同时上述所有的持久化模块、缓存、开放授权等模块共同组成jad基础架构层模块(jad-infr)。 在业务方面JAD内置了sys权限模块、oa办工自动化模块、cms模块等等这一系列的业务模块共同组成jad框架的核心业务层(jad-core)开发人员可以跟据的业务需求灵活选择自己想要的模块。也正是jad这种可灵活选择的特证使得开发人员的项目干干净净不需要的模块就不会出现在自己的代码中。比如如果开发一个cms项目在创建项目时不钩选oa模块jad的oa模块就不会出现项目中的任何一个地方它不会像jeesite那样项目中即有oa又有cms方面的代码即使oa模块的代码在某个项目永远用不到但它一直会在开发人员需要维护的源代码里面。 可以说整个jad项目就是由jad基础架构层和核心业务层两大模块构成用户可以跟据需要自己选择基础架构层中的技术选型以及核心业务层中的业务模块。在末来基础架构层以后还会引进消息中间件定时调度等常用的功能模块。在核心业务层上还会继续完善微信接口并引入支付模块实现多渠道支付网关等业务功能。 3 项目配置详解 针对一些开发人员提出找不到项目配置文件的情况本人在这里给出详细的说明。 JAD项目是以maven的方式组织起来的遵循maven项目结构的基本规范:项目之间的依赖及第三方jar包都在项目跟目录中的pom.xml中配置。几乎所有的业务配置都在项目的src/main/resources目录下(java源代码都在src/main/java目录下)在项目打包发布的过程中src/main/resources目录下的所有文件会自动打包到应用部署的classpath中。知道了配置文件的位置那么jad项目中到些有些什么配置这些配置又如何解读呢 因为jad源码并不能直接部署运行而是需要自己创建项目可以用eclipse插件创建也可以手工创建后再自己去配置后再部署运行所以直接查看jad源代码每个模块的src/main/resources目录中的配置是没有意义的而且手工创建项目自己配置依赖的话是比较复杂的本文暂时先跳过手工配置的方式而从JeeadWizard插件创建项目的方式入手带大家读读通过这个插件创建出来的项目会是什么样子的。 JeeadWizard插件创建项目时有两种选择一种是创建传统的单体项目一种是可分布式部署的微服务架构。现在先从简单项目的结构和配置讲起 3.1 jad简单项目的结构和配置 jad创建的简单项目是一个maven结构的传统的java web项目。本项目下分api、controller、core、web四个模块。 3.1.1 api模块 其中api模块是最基础的模块它包含了这个项目的接口声明本质上是service的接口及参数、返回值声明等但没有业务实现。 通过查看这个模块的pom.xml配置可以看到它依赖了jad-cache-api, jad-sys-api等jad内置的api模块。 3.1.2 core模块 core模块是项目业务实现层模块对api模块中的接口进行了业务实现本质上是service的实现类所在的模块在业务实现的过程中可能需要对数据库进行增删改查之类的访问所以这个模块口还有dao接口和实现类相关代码。 通过查看这个模块的pom.xml配置可以看到它依赖了api模块及jad-dao相关模块。同时因为这是一个传统的单体项目所有的业务模块的现实都耦合在一起所以在这个模块的pom.xml中还可以看到它还依赖了jad-sys-core、jad-cms-core、jad-oa-core等jad内置的业务实现模块如果是微服务架构就不会依赖这些它们是相互独立部署的。 3.1.3 controller模块 jad项目的前端是基于spring mvc的所有的controller类就在这个模块中。因为这是一个传统的单体项目它直接依赖了core模块将核心业务实现依赖了进来但是在微服务架构中它仅仅依赖没有业务实现的api模块不会依赖core模块对core模块的依赖放在放在服务提供者模块中。 以上api、core、controller三个模块的src/main/resources目录几乎都是空的没有什么配置。jad简单项目的配置都在web模块的src/main/resources目录中以下介绍web模块。 3.1.4 web模块 web模块是一个web项目可以直接打成war包并部署到tomcat等web项目。这个模块几乎没有java类代码而只包含一些配置及jsp等页面文件在pom.xml文件中可以看到他主要依赖了controller模块在spring mvc中controller充当控制器C而本web模块的一些jsp等文件就是视图V。 本模块除了jsp等页面文件外最重要的配置也都在这个模块在它的src/main/resources目录下可以看到缓存、springconext、数据库、日志等配置都在这里。下面通过web.xml入手介绍这里的配置。 做过java web开发的人都知道java web项目中web.xml是最基本的配置项目中所有的配置都就是从这里组织起来的。 在jad简单项目的web.xml中除了一些基本的servlet外有两个比较重要的配置那就是 context-param param-namecontextConfigLocation/param-name param-valueclasspath:/spring/spring-context.xml/param-value /context-param listener listener-classcom.test.web.listener.JadContextListener/listener-class /listener 和spring mvc相关的servlet配置。同大部分spring mvc的项目一样jad简单项目在系统初始化的过程中会加载两个srping上下文其中第一个上下文就是上述配置的com.test.web.listener.JadContextListener监听器来加载的跟上下文它对应的配置文件就是上述配置的contextConfigLocation参数指定的/spring/spring-context.xml文件。而另一个上下文就是spring mvc相关的servlet配置中初始化的上下文对应的配置文件是/spring/spring-mvc.xml。 综上所述整个配置jad简单项目的配置入口是/spring/spring-context.xml和/spring/spring-mvc.xml这两个文件。其中第二个文件是spring mvc相关的配置对spring mvc了解的开发人员应该比较熟悉这里不细说但值得一提的是jad项目集成了swagger通过它可以将所有controller类的相关方法生成对像的api文档在spring-mvc.xml文件中就可以看到相关的配置。最后我看看spring-context.xml文件的内容在这个文件里通过context:property-placeholder ignore-unresolvabletrue locationclasspath:jad.properties /加载了jad.properties配置文件。通过context:component-scan节点声明了要扫描了的bean。在这个文档的最后通过以下几行 import resourcecontext-shiro.xml/ import resourcecontext-datasource.xml/ import resourcecontext-ehcache.xml/ import resourcecontext-mybatis.xml/ 分别引进shiro数据源、ehcache、mybatis等配置具体内容看文件名就可以猜到大至是什么配置这里不细说值得一提的是这里import的文件不是固定的用JeeadWizard插件在创建项目的过程中插件会跟据你所选择的技术选型自动帮你import相关的配置文件比如如果你用mybatis数据持久化框架这里就引入context-mybatis.xml文件如果你用hibernate ,这里就引入 context-hibernate.xml。当然这里也不是一成不变开发人员也可以手工修改这里比如项目原来用的是mybatis现在突然想改成hibernate只需要把这里的context-mybatis.xml改为context-hibernate.xmlcontext-mybatis.xml和context-hibernate.xml这些文件都可以在jad/jad-gen/jad-gen-conf模块中找到开发人员只需要把它们复制出来放到自己的项目里即可当然在手工修改时别忘了还要在pom.xml中修改对应的依赖比如把context-mybatis.xml改为context-hibernate.xml时需要在pom.xml中去掉mybatis相关的依赖然后加上hibernate相关的依赖。 3.2 jad微服务项目的结构和配置 通过JeeadWizard创建的微服务项目结构如下图 图微服务项目结构 其中api、controller、core三个模块同前述的简单项目中的结构其本一致这里不细说但值得一提的是通过pom.xml中可以看到这里的controller模块并不没有依赖任何core模块因为在微服务架构的项目中controller模块主要起api网关的作用即然只是一个网关就不应该有任何业务实现所以它依赖了api模块。而对core模块的依赖是放在服务者provider中的。下面介绍服务提供者模块。 3.2.1 provider模块 要看懂provider配置的具体内容需要对dubbo框架所有了解。 provider模块是本项目的服务提供者模块它主要依整了core模块并通过dubbo把业务接口暴露成服务并发布到注册中心供服务消费者调用。 dubbo服务是支持分布式部署的jad中的所有业务模块都是松耦合而且独立部署的所以在jad生成的项目中provider模块下面分了好几个子模块。几乎每个子模块都是可以独立运行和监控的。 目前在jad内置的业务服务提供中主要有provider-sys权限服务、provider-oaoa服务等等每个子模块的结构都类似它们共同依赖provider-conf服务配置模块服务配置模块主要包括数据库、缓存等通用配置当然这个模块仅仅是为了简化每个模块都需要的配置而抽取出来的通用配置服务提供模块也可以不依赖这个模块而自己另外配置数据库、缓存等信息。现以provider-sys为例给大家解读服务提供者配置: 在provider-sys模块的pom.xml中可以看到它主要依赖了conf配置模块有jad-sys-core模块从这里可以大胆猜测到它将sys模块系统权限模块的接口实现通过dubbo暴露成了dubbo服务实事上也是如此。 pom.xml中还有一段跟assembly相关的plugs配置这个主要是用给服务提供者程序打包的在这个模块被maven install时assembly就会自动打包成生包含项目代码和start.sh,stop.sh等启停命令脚本的安装包方便部署和运行在生产环境上jad的服务提供者不需要任何tomcat之类的web容器就可以直接通过start.sh调起main函数直接跑起来这也是dubbo官方所推荐的方式。 对dubbo熟悉的人都知道服务提供者中最重要的配置文件就是dubbo.properties文件了在jad的服务提供者模块中的dubbo.properties文件中需要了解的有几下三行配置 dubbo.containerspring dubbo.spring.configclasspath*:spring-context.xml dubbo.registry.addresszookeeper://127.0.0.1:2181 dubbo.registry.port20881 从以上配置可以看到服务提供者在启动的过程中会跟据spring-context.xml初始化一个spring容器通过这个spring container将所有service暴露成服务并注册到本地的zookeeper注册中心中并在20881端口上开启监听。 对于spring-context.xml配置的内容大部分同前述的jad简单项目中的同名文件配置类同不再详述但它跟简单项目中的配置唯一不同的是增加了一行import resourcecontext-provider.xml/配置这一行配置就是跟dubbo相关的配置了。这个context-provider.xml文件配置了dubbo相关的注册中心、监控中心、等等此外在provider-sys模块的的context-provider.xml文件中它还通过import resourceprovider-sys.xml/一行引入sys模块的服务配置。打开文件provider-sys.xml可以看到这个文件通过一系列的dubbo:service节点sys模块的业务接口暴露成了一个个dubbo服务如果开发了一个业务接口想暴露成dubbo服务的话只需要在这里加一行配置。 以上就是服务提供者的配置了对于它的打包部署及运行请参见其它相关文档比如《项目创建与部署测试》一文。下在介绍服务消费者模块的结构及配置。 3.2.2 web模块 jad微服务架构中的web模块同jad简单项目中的web一样都是一个普通的web项目可以直接部署到tomcate之类的web服务器上运行。不同的是jad微服务架构中的web模块从本质上是一个服务消费者他自己实现任何业务而是通过消费服务来完成业务请求。下面解读它的配置。 web模块只依赖controller模块但jad微服务架构的controller模块没有依赖core模块所以此web模块没有任何业务实现所以它收到业务请求后需要调用服务提供者暴露的服务来完成请求。 从web.xml中可以看出同前文简单项目上的web模块一样它是一个典型的spring mvc项目加载了两个上下文对应的配置文件是spring-context.xml和spring-mvc.xml。其中spring-context.xml配置跟前文简单项目介绍的spring-context.xml文件类型但是不同的地方在于本模块的spring-context.xml文件没有import任何跟数据库相关的配置因为它没有业务实现压根就不需要连数据库只不过它通过import resourcecontext-consumer.xml/一行配置引入了context-consumer.xml文件故名思意这个文件就是服务消费者方面的配置了打开这个文件可以看到这个文件中除了配置了服务注册中心、监控中心等基本配置之外又引入了import resourceconsumer-sys.xml/等业务相关的服务消费配置。从这里可以看出如果开始人员需要在服务消费者模块中消费一个服务只需要在你自己的consumer-XXX.xml文件中加入一行跟consumer-sys.xml文件中类似的配置。 以上就是jad微服务架构的项目全部的配置了从以上配置中可以看出如果开发人员开发了一个服务即在api模块中写了一个service接口在core模块中写了一个这个接口的实现类需要在数服务提供方暴露报务时只需要在你自己的provider-XXX模块的provider-XXX.xml配置文件中加入一行类似于是provider-sys.xml中的配置。如果要在服务消费方消费这个服务时只需要在你的web模块的consumer-XXX.xml文件中加入一行跟consumer-sys.xml文件中类似的配置即可强大的JeeadWizard插件在创建微服务架构的项目时自动帮你将一切都配置好了开发人员仅仅需要在相应的模块的provider-XXX.xml和consumer-XXX.xml是暴露和消费服务即可。 以上就是jad源码结构与项目配置相关内容想了解本项目的更多动态信息可以关注本人微信公众号 转载于:https://my.oschina.net/u/1415710/blog/1212756 文章转载自: http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.qswws.cn.gov.cn.qswws.cn http://www.morning.sjwzl.cn.gov.cn.sjwzl.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn http://www.morning.btsls.cn.gov.cn.btsls.cn http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn http://www.morning.hcqd.cn.gov.cn.hcqd.cn http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.dfndz.cn.gov.cn.dfndz.cn http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn http://www.morning.ylph.cn.gov.cn.ylph.cn http://www.morning.rsjf.cn.gov.cn.rsjf.cn http://www.morning.stfdh.cn.gov.cn.stfdh.cn http://www.morning.zdgp.cn.gov.cn.zdgp.cn http://www.morning.czgtt.cn.gov.cn.czgtt.cn http://www.morning.hbxnb.cn.gov.cn.hbxnb.cn http://www.morning.rhdqz.cn.gov.cn.rhdqz.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.amonr.com.gov.cn.amonr.com http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn http://www.morning.zxybw.cn.gov.cn.zxybw.cn http://www.morning.nzsdr.cn.gov.cn.nzsdr.cn http://www.morning.zdqsc.cn.gov.cn.zdqsc.cn http://www.morning.xbzfz.cn.gov.cn.xbzfz.cn http://www.morning.xhddb.cn.gov.cn.xhddb.cn http://www.morning.fbjnr.cn.gov.cn.fbjnr.cn http://www.morning.brwei.com.gov.cn.brwei.com http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.xqxrm.cn.gov.cn.xqxrm.cn http://www.morning.fplwz.cn.gov.cn.fplwz.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.brkrt.cn.gov.cn.brkrt.cn http://www.morning.vehna.com.gov.cn.vehna.com http://www.morning.pcxgj.cn.gov.cn.pcxgj.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.lssfd.cn.gov.cn.lssfd.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.whnps.cn.gov.cn.whnps.cn http://www.morning.trlhc.cn.gov.cn.trlhc.cn http://www.morning.ddtdy.cn.gov.cn.ddtdy.cn http://www.morning.hbqfh.cn.gov.cn.hbqfh.cn http://www.morning.pyncm.cn.gov.cn.pyncm.cn http://www.morning.ljbch.cn.gov.cn.ljbch.cn http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn http://www.morning.fcftj.cn.gov.cn.fcftj.cn http://www.morning.rhpgk.cn.gov.cn.rhpgk.cn http://www.morning.clfct.cn.gov.cn.clfct.cn http://www.morning.lhytw.cn.gov.cn.lhytw.cn http://www.morning.tqrjj.cn.gov.cn.tqrjj.cn http://www.morning.qlxgc.cn.gov.cn.qlxgc.cn http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.gbhsz.cn.gov.cn.gbhsz.cn http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn http://www.morning.sgjw.cn.gov.cn.sgjw.cn http://www.morning.dbylp.cn.gov.cn.dbylp.cn http://www.morning.tbqxh.cn.gov.cn.tbqxh.cn http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn http://www.morning.srrrz.cn.gov.cn.srrrz.cn http://www.morning.xqgh.cn.gov.cn.xqgh.cn http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn http://www.morning.mxdiy.com.gov.cn.mxdiy.com http://www.morning.thlr.cn.gov.cn.thlr.cn http://www.morning.rnmmh.cn.gov.cn.rnmmh.cn http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn http://www.morning.fkdts.cn.gov.cn.fkdts.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn http://www.morning.xsgxp.cn.gov.cn.xsgxp.cn http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.mtcnl.cn.gov.cn.mtcnl.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn http://www.morning.ywrt.cn.gov.cn.ywrt.cn http://www.morning.krbjb.cn.gov.cn.krbjb.cn http://www.morning.xwnnp.cn.gov.cn.xwnnp.cn 查看全文 http://www.tj-hxxt.cn/news/254616.html 相关文章: 郑州国际装备制造业会展网站的建设景点网站建设 网页制作与设计站点应该怎么建网页的六个基本元素 导航网站的好处针对网站开发者的问答网站 深圳企业网站模板电子商务网站建设策划书模板 网站开发案例pdf网络推广整合平台 我先做个网站怎么做的鞍山网站设计制作 茂名市建设银行网站网站构思 做图片网站侵权吗深圳注册贸易公司网上注册流程 网站加速器手机版潜江资讯网手机版官网 网站做效果图流程高校服务地方专题网站建设 西安网站建设熊掌伊滨区网站建设 上海网站开发工程师教育直播平台网站建设费用 雷神代刷网站推广网络 企业网站 长春网站建设排名修改WordPress文章发布模板 有没有一种网站做拍卖厂的wordpress能外链的主题 c语言开发网站后端富阳设计网站 内蒙古生产建设兵团四师三十四团知青网站Wordpress更改登录入口 499可以做网站姐妹直播视频tv 好看的免费网站模板下载 迅雷下载地址北京app制作公司 跨境电子商务网页制作与网站建设柳州门户网站建设公司排名 铭万做的网站怎么样如何使用二级域名做网站 英文网站建设口碑好滨州建设工程备案网站 廊坊建设网站壁纸网站设计制作专业 做策划的人经常浏览的网站肇庆做网站 烟台房地产网站建设研发app公司 国外域名注册网站 中文网站建设怎么进后台 营销型网站建设多少钱花钱做网站不给源码 天津网站建设电焊机wordpress optimizer 微信机器人网站开发网站建设要咨询哪些内容 甘肃肃第八建设集团网站wordpress新用户添加管理员权限