 基础结构及nacos配置)
前言前段时间本来只是想搭建一个最新的spring cloud alibaba 集成 sentinel的环境去验证一些新的功能问题结果遇到版本问题也是面向百度编程各种老博客完全不适用没有看到合适的解决办法。后来只能自己测试解决问题spring cloud alibaba集成sentinel及版本问题处理_邋遢道的博客-CSDN博客也是一样的做其他问题校验集成其他组件也是各种各样的奇葩问题甚至还有mybatis不可用唉。相信也有朋友遇到过和我一样的问题索性我从新完整搭建一个新的实现一些基本的功能一方面是记录经验另一方面也是方便自己以后搭建框架时候使用因为有些博客可能也不是特别详细。还是靠自己吧环境准备本次使用的环境是idea 2020.1mysql 5.7maven 3.6.3jdk1.8项目创建1. 首先创建一个maven项目下图是创建完成的结构因为spring cloud alibaba各个项目最好统一管理所以我把src目录删除只作为父项目统一管理2.创建子项目和第一步一样的选择maven,我这儿创建了一个用户管理user-manage和一个日志管理loggin-manage 结构如下3.先对父pomx.xml进行配置直接上配置了?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdorg.example/groupId artifactIdspring-cloud-alibaba-project/artifactId packagingpom/packaging version1.0-SNAPSHOT/version modules moduleuser-manage/module moduleloggin-manage/module /modules !-- 自定义版本-- properties !--这个名称最好不要改,后面的子pom会用这种格式去找,改了就找不到了,非要改子pom引用对应依赖就必须要指定版本-- spring-cloud.versionHoxton.SR12/spring-cloud.version spring-boot.version2.3.12.RELEASE/spring-boot.version spring-cloud-alibaba.version2.2.7.RELEASE/spring-cloud-alibaba.version mybatis.plus.version3.4.2/mybatis.plus.version /properties !--公用依赖信息-- dependencies dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId version1.16.10/version scopeprovided/scope /dependency !--mybatis-plus-- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId /dependency dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId scoperuntime/scope /dependency !--spring boot-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !--openfeign-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-openfeign/artifactId /dependency !--nacos-- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency /dependencies !--不添加依赖让子pom继承使用-- dependencyManagement dependencies dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version${mybatis.plus.version}/version /dependency !-- spring-boot 相关依赖-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version${spring-boot.version}/version typepom/type scopeimport/scope /dependency !-- spring-cloud 相关依赖-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId version${spring-cloud.version}/version typepom/type scopeimport/scope /dependency !-- spring-cloud-alibaba 相关依赖-- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-dependencies/artifactId version${spring-cloud-alibaba.version}/version typepom/type scopeimport/scope /dependency !-- spring-boot-starter-web 相关依赖-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId version${spring-boot.version}/version /dependency /dependencies /dependencyManagement build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.8.1/version configuration target1.8/target source1.8/source encodingUTF-8/encoding skiptrue/skip /configuration /plugin /plugins /build /project这里面的全局依赖需要注意下mybatis plus,lombok,mysql java链接spring boot web,open feign4. 向user管理模块中新增用户查询的代码结构如下先看 application.ymlserver: port: 8881 #自定义端口 spring: application: name: user-service #项目名称 main: allow-circular-references: true #2.6.0后默认不允许 允许循环依赖 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/myalibaba username: root password: 123456 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 #本地nacos地址 mybatis-plus: mapper-locations: classpath:mapper/*.xml #mapper扫描路径 type-aliases-package: com.andy.user.entitymysql的脚本就不贴了很简单的一个用户表名称年龄性别啥的然后实现对应的增删改查主要贴一下dao 和mapperUserInfoDao.javapackage com.andy.user.dao; import com.andy.user.entity.UserInfo; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; import java.util.List; Mapper//mapper声明 Repository//mapper是mybatis的spring不会去生成bean,所以加上该注解交给spring管理生成 public interface UserInfoDao { boolean saveUser(UserInfo userInfo); boolean updateUser(UserInfo userInfo); boolean deleteUser(UserInfo userInfo); ListUserInfo queryUserAll(); }UserMapper.xml?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.andy.user.dao.UserInfoDao resultMap iduser typecom.andy.user.entity.UserInfo id columnid propertyid / result columnuser_name propertyuserName / result columnage propertyage / result columnsex propertysex / /resultMap insert idsaveUser parameterTypecom.andy.user.entity.UserInfo insert into user_info(user_name,age,sex) values(#{userName},#{age},#{sex}); /insert update idupdateUser parameterTypecom.andy.user.entity.UserInfo update user_info set user_name #{userName},age #{age},sex #{sex} where id #{id} /update delete iddeleteUser parameterTypecom.andy.user.entity.UserInfo delete user_info where id #{id} /delete select idqueryUserAll resultMapuser select * from user_info /select /mapper完整结构及代码好了到现在关于用户模块就已经创建完成但是现在启动还会报错因为nocas还没有安装下载地址Releases · alibaba/nacos · GitHub 注意版本问题版本地址说明版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub 除了nacos也有其他组件版本查找因为我的alibaba版本是2.2.7所以下载nocas要看下版本选择2.0.3不然启动也会报找不到nacos用上面的下载地址下载完成后解压1.打开conf,新建一个nocas数据库我的叫my-nocas(自己随便定义不过记得下面改的时候要同一)把数据库脚本运行一下nacos-mysql.sql2. 然后打开application.properties 把数据库链接信息改一下,上面的也记得放开注释3. 打开bin目录 编辑 startup.cmd windows环境linux改startup.shset MODEstandalone 本地测试单机模式如果你是集群可以不用改这个文件5.改完了就双击启动nacos6. 打开浏览器访问localhost:8848/nacos 用户名密码默认都是nacos,登录7. 没有问题就可以启动项目了启动成功刷新nacos,可以看到服务那么spring cloud alibaba集成nacos已经完成自行测试编写的用户相关接口调用补充这个项目的service有些朋友没有先启动项目然后在idea view Tool Windows下面选择service,然后点击add service run configuration Type再选到spring boot 就有了好了本章先到这儿就完成了基本框架搭建集成nacosmybatis plus,下一章我们再继续完善这个项目