闪聚支付章开发环境搭建_第1页
闪聚支付章开发环境搭建_第2页
闪聚支付章开发环境搭建_第3页
闪聚支付章开发环境搭建_第4页
闪聚支付章开发环境搭建_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2)从中央仓库下不作任何配置,maven自行从中央仓库下载,也可使用阿里官网Maven库<name>aliyun3)使用本地仓本教程使用本地仓库配置。拷贝老师提供的mavn仓库并解压,在man的setin.xml径,路径位置不要使用中文,配置例子如下:在IDEA中选择setting.xml文件,自动找到本地仓库目录,如下图3、配置编43、配置编4、配置快捷IDEA可以集成Eclipse的快如需自定义则点击“copy”复制一份5、自动导入包快捷方式idea可以自动优化导idea可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设设置idea导入6、代码模自定义自己的代码模7、提示忽略大小默认IDEA的提示是区分大小写的,这里设置为提示忽略大小9o9obok是一个实用的jaa工具,使用它可以消除jaa代码的臃肿,obok提供一系列的注解,使用这些注解可以不用定义gettr/stter、equals、构造方法等,它会在编译时在字节码文件自动生成这些通用的方法,简化开发人员的工作。项目官比如上节创建的Urest模型,@Data注解可以自动生成etstr方法,@oString生成tostrin使用方法:1、在项目中添加Lombok的依作用:项目在编译时根据Lombok注解生成通用方法,依赖如下2、在IDEA开发工具中添加Lombok插作用:使用IDEA开发时根据Lombok注解生成通用方法,不报错10、配置虚拟机内修改idea64.exe.vmoptions(64位电脑选择此文件一个例子,电脑内存8G10、配置虚拟机内修改idea64.exe.vmoptions(64位电脑选择此文件一个例子,电脑内存8G,设置如下-Xms1024m-Xmx4096m-XX:MaxPermSize=1024m-1.2Nacos服务发现与配置中微服务开发需要构建服务发现中心、配置中心,本项目采用Nacos来实现详见“Nacos服务发现与配置中心1.3Mybatis本项目数据库使mysql-community-5.7,请自行安装MySQL数据库本项目持久层采用Mybatisus作为技术构架,Mybatislus是在Mybatis基础上作了很好的封装,方便系统开发。学习MybatisPlus详见“Mybatis-Plus讲义v1.0.md"解压”shanjupay基础工程.zip“,将基础工程导入IDEA打开IDEA,点击File->Open后选择之前解压的shanjupay1.5导入项目初始使用客户端连接MySQL,执行shanjupay-init.sql,执行脚本自动创建1.5导入项目初始使用客户端连接MySQL,执行shanjupay-init.sql,执行脚本自动创建数据库并导入初始数据数据库清单如下备注:数据库、表中的字段以及表关系会在后续开发过程中随本节搭建如下项目工程数据库名数据内用户中心数交易服工程说闪聚支shanjupay-项目通用工程包括:常用工具类和分页信息封装VO三个工程在架构中的位置如下在三个工程在架构中的位置如下在基础工程的基础上创建商户平台应用工程选中shanjupay工程,右键选择新建服务职商户平台应用(shanjupay-merchant-为前端提供商户管理功商户服务API(shanjupay-merchant-定义商户服务提供的接商户服务(shanjupay-merchant-实现商户服务的所有接2.选择Maven2.选择Maven和3.填写ArtifactId:shanjupay-merchant-application,设置ModouleName:shanjupay-merchant-点击Fininsh完成创添加依点击Fininsh完成创添加依赖,完善<?xmlversion="1.0"<projectxmlns="/POM/4.0.0"Nacos配置中心Nacos注册中心Dubbo启动器Web启动器SpringBoot启动器SpringBoot启动器log4j4启动器注释处理器健康检查,运维相关测试启动器6.配置port57010启动端口命令行注max‐http‐header‐size:addr:name:merchant‐applicationallow‐bean‐definition‐overriding:true#Springname:merchant‐applicationallow‐bean‐definition‐overriding:true#SpringBoot2.1需要设server‐addr:namespace:a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8cluster‐name:DEFAULTserver‐addr:${nacos.server.addr}#file‐extension:namespace:a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8#group:SHANJUPAY_GROUP#聚合支付业务‐refresh:data‐id:spring‐boot‐http.yaml#springboothttp配置group:COMMON_GROUP#通用配置组enabled:truefile‐size‐threshold:0#上传文件的临时目录#最大支持文件大小max‐file‐size1MB#最大支持请求大小max‐request‐size:#dubbo服务扫描基准base‐packages:com.shanjupaydubbo协port:address:nacos://:8848port22310dubboqos端口配置check:falseretries:config:7.在Nacos中添加7.在Nacos中添加spring-boot-http.yaml这里统一使用dev命名空间,没有此命名空间则在nacos中创建charset:UTF‐8force:trueenabled:trueencoding:remote_ip_header:x‐forwarded‐forprotocol_header:x‐forwarded‐protopath:/use‐forward‐headers:include:Nacos配置页面如下所示 在Nacos中添加merchant-application.yaml 在Nacos中添加merchant-application.yamlenable:1.在resources目录下添加log4j2配置文件l2是log4j的改进版本,性能比log4j要高,通常日志配置文件在开发可以调整日志级别,输出详细的日志来跟踪程序的执行。<?xmlversion="1.0"<ConfigurationmonitorInterval="180"<ConfigurationmonitorInterval="180"<property<property<propertyname="PATTERN">[${}][${env:SERVER_PORT}]%date{YYYY‐MM‐ddHH:mm:ss,SSS}%highlight{%level}[%thread][%file:%line]‐%msg%n%throwable</property><Consolename="Console"<PatternLayout<RollingFilename="ErrorAppender"fileName="${logdir}/${prjname}_error.log"HH}.log"<PatternLayout<ThresholdFilterlevel="ERROR"onMatch="ACCEPT"<TimeBasedTriggeringPolicyinterval="1"modulate="true"<RollingFilename="DebugAppender"fileName="${logdir}/${prjname}_info.log"HH}.log"<PatternLayout<ThresholdFilterlevel="DEBUG"onMatch="ACCEPT"<TimeBasedTriggeringPolicyinterval="1"<Asyncname="AsyncAppender"<AppenderRef<AppenderRef<loggername="org.springframework"<loggername="org.mybatis"<loggername="springfox"<loggername="org.apache.http"<loggername="com.alibaba.nacos"<Rootlevel="INFO"<AppenderRef<AppenderRef添加启动添加新建启packageimportimportorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;publicclassMerchantApplicationBootstrappublicstaticvoidmain(String[]{}}3.启动服1.6.2在基础工程的基础在基础工程的基础上创建商户服务工程,商户服务工程包括接口和接口实现两个子工程按上述步骤创建商户服务工程shanjupay-在shanjupay-merchant下创建shanjupay-merchant-api,选中shanjupay-merchant工程右键-》New-Module,填写artifactId和Name:shanjupay-merchant-3.在shanjupay-merchant下shanjupay-merchant-service,选中shanjupay-merchant工程右键-》New-Module,填写artifactId和ModuleName:shanjupay-merchant-4.两个工程创建4.两个工程创建成功后,项目整体目录结构如5.完善shanjupay-merchant-api模块依赖如下<?xmlversion="1.0"<projectxmlns="/POM/4.0.0"shanjupay-merchant-service模块shanjupay-merchant-service模块依<?xmlversion="1.0"<projectxmlns="/POM/4.0.0"对象池在resources目录下添加日志配置文目录下添加配置文件:l,将下边配置中替换为之前创建的命名空间的bootstrap.yml内容如port56040启动端口命令行注addr:name:merchant‐serviceallow‐bean‐definition‐overriding:true#SpringBoot2.1需要设server‐addr:namespace:cluster‐name:server‐addr:${nacos.server.addr}#file‐extension:server‐addr:${nacos.server.addr}#file‐extension:namespace:a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8#group:SHANJUPAY_GROUP#聚合支付业务‐refresh:data‐id:spring‐boot‐http.yaml#springboothttp配置group:COMMON_GROUP#通用配置组#dubbo服务扫描基准base‐packages:com.shanjupaydubbo协port:address:nacos://:8848port22240dubboqos端口配置命令行注check:falseretries:config: 在Nacos中添加merchant-service.yaml配置#覆盖spring‐boot‐http.yamlcontext‐path:4.添加商户中心服务启动package4.添加商户中心服务启动packageimportimportorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.client.discovery.EnableDiscoveryClient;publicclassMerchantBootstrappublicstaticvoidmain(String[]{}}1.7工程测通过一个案例”根据Id查询商户“的开发去熟悉项目架构的基本开1.7.1使用mp的自动生成工程生成entity、mapper等文件1)修改生成类中的数据库链接,连接shanjupay_merchant_service数据//商户服2)设置包路//生成包配PackageConfigpackageConfig=new3)运行生成类,输生成成功将生成的entity、mapper将生成的entity、mapper拷贝到shanjupay-merchant-service工配置连接池在ncos中新建连接池Di配置:spin-bot-tate-ridyal,u为:内容如下:type:com.alibaba.druid.pool.DruidDataSourcedriver‐class‐name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/oauth?useUnicode=trueusername:rootpassword:yourpasswordinitial‐size:min‐idle:max‐active:max‐wait:time‐between‐eviction‐runs‐millis:min‐evictable‐idle‐time‐millis:300000validation‐query:SELECT1FROMDUALtest‐while‐idle:truetest‐on‐borrow:truetest‐on‐return:max‐pool‐prepared‐statement‐per‐connection‐size:20slow‐sql‐millismax‐pool‐prepared‐statement‐per‐connection‐size:20slow‐sql‐millis:1log‐slow‐sql:filters:config,stat,wall,log4j2web‐enabled:trueurl‐pattern:/*exclusions:"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"session‐stat‐enable:falsesession‐stat‐max‐count:1000principal‐cookie‐name:adminprincipal‐session‐name:adminprofile‐enable:trueenabled:trueurl‐pattern:/druid/*allow:deny:reset‐enable:falselogin‐password:adminlogin‐username:aop‐patterns:2.商户服务覆盖部分配置(数据库名和用户名密码):merchant-#覆盖spring‐boot‐starter‐druid.yamlurl:jdbc:mysql://:3306/shanjupay_merchant_service?username:password:3.应用配置到项目‐refresh:data‐id:spring‐boot‐starter‐druid.yaml#springbootstarterdruid配置group:COMMON_GROUP#通用配置组配置Mybatis-在nacos中添加配置:spring-boot-mybatis-plus.yaml,Groupcache‐enabled:falsemap‐underscore‐to‐camel‐case:trueid‐type:cache‐enabled:falsemap‐underscore‐to‐camel‐case:trueid‐type:field‐strategy:0db‐column‐underline:truerefresh‐mapper:truetypeAliasesPackage:mapper‐locations: 商户服务覆盖部分Mybatis-Plus配置:merchant-#覆盖spring‐boot‐mybatis‐plus.yamltypeAliasesPackage:com.shanjupay.merchant.entitymapper‐locations:classpath:com/shanjupay/*/mapper/*.xml3.应用配置到项目‐refresh:data‐id:spring‐boot‐mybatis‐plus.yaml#springbootmybatisplus配置group:COMMON_GROUP#通用配置组4.添加分页和性能分packageimportcom.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;importcom.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;importorg.mybatis.spring.annotation.MapperScan;importimport**Mybatis‐Plus配**publicclassMybatisPlusConfig*publicPaginationInterceptor{returnnew}*publicPaginationInterceptor{returnnew}*publicperformanceInterceptor(){returnnew}1.7.3在shanjupay-merchant-api下新建商户packagepublicinterfaceMerchantService@param@throwsMerchantDTOqueryMerchantById(Long}注意:DTO类型的对象作为service层传输的对象在shanjupay-merchant-api工程定义packageimportio.swagger.annotations.ApiModel;importio.swagger.annotations.ApiModelProperty;importimport@author@version@ApiModel(value="MerchantDTO",description="商户信息publicclassMerchantDTOimplementsSerializableprivateLongpublicclassMerchantDTOimplementsSerializableprivateLongprivateStringprivateLongprivateStringprivateStringprivateStringprivateStringprivateStringprivateStringprivateStringprivateStringprivateStringprivateStringprivateLong}@ApiModel@ApiModelProperty是Swagger注解后边会学习1.7.4在shanjupay-merchant-service下新建商户接口实现类:MerchantServiceImpl,并添加新建在shanjupay-merchant-service下新建商户接口实现类:MerchantServiceImpl,并添加新建商户测试方本方法从shanjupay_merchant_service数据库的merchant查询数据packageimportimportpublicclassMerchantServiceImplimplementsMerchantServiceMerchantMapper*@param@throwspublicMerchantDTOqueryMerchantById(LongmerchantId){Merchantmerchant=merchantMapper.selectById(merchantId);MerchantDTOmerchantDTO=newMerchantDTO();return}1.7.5在shanjupay-merchant-application下添加如下pom依赖商户服务API在shanjupay-echant-aplication下新建商户Contor:MechantContr建商户接口packageimportimportimportimportimportorg.apache.dubboimportimportorg.apache.dubbo.config.annotation.Reference;importorg.springframework.web.bind.annotation.GetMapping;importpublicclassMerchantControllerprivateMerchantServicepublicMerchantDTOqueryMerchantById(@PathVariable("id")Long{MerchantDTOmerchantDTO=}}1.启动商户平台应用和商户服 访问[http://localhost:57010/merchant/merchants/具体的id测试查询商如果merchant表没有数据可手动添加后再行测试2.1API接口文档利器Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服(https://swagger.io/)。它的主要作用使得前后端分离开发更加方便,有利于团队协接口的文档在线自动生成,降低后端开发人员编写接口文档的负功能测Springfox,即可非常简单快捷的使用Swagger。在项目中添加依赖,只需要在n中进行配置即可,因为其他微服务工程都直接或间接依赖。在项目中添加依赖,只需要在n中进行配置即可,因为其他微服务工程都直接或间接依赖。Swagger依赖2.在shanjupay-merchant-application工程的config包中添加一个Swaggerpackage@ConditionalOnProperty(prefix="swagger",value={"enable"},havingValue="true")publicclassSwaggerConfigurationpublicDocketbuildDocket()returnnew//要扫描的API(Controller)}**@return@Title:构建API@methodName:privateApiInfo@Title:构建API@methodName:privateApiInfobuildApiInfo()Contactcontact=newContact("开发者","","");returnnewApiInfoBuilder()}} 添加SpringMVC配置类:WebMvcConfig,让外部可直接访问Swagger文packageimportimportorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;publicclassWebMvcConfigimplementsWebMvcConfigurer*@parampublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry)}}2.1.3Swagger在Java类中添加Swagger的注解即可生成Swagger接口文档,常用Swagger注解如下@Api:修饰整个类,描述Controller的作用@ApiOperation:描述一个类的一个方法,或者说一个接口@ApiModel:用对象来接收参@ApiResponses:HTTP响应整体描@ApiError:发生错误返回的信息@ApiImplicitParams:多个请求参数的描述信@ApiImplicitParam属性上边的属性后边编写程序时用到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论