作者:蔡心怡湖人永蓉 | 来源:互联网 | 2023-07-13 11:44
项目情况说明:ubuntu-16.04springboot-2.2.2.RELEASEmysql-5.7mongodb-4.0.14redis-3.0.6grpc- grpc-sp
项目情况说明:
ubuntu - 16.04
springboot - 2.2.2.RELEASE
mysql - 5.7
mongodb - 4.0.14
redis - 3.0.6
grpc - grpc-spring-boot-starter - 2.6.1.RELEASE
项目目录:
mypro -
device - 调用数据库,grpc客户端
lib - 公共库
person - 调用数据库,grpc服务端
项目启动:
步骤一:项目建立
之所以从这里开始,因为我之前纠结过多模块项目的建立...
IDE我使用的是IDEA
1.1、建立主目录mypro
新建文件夹mypro,在IDEA中依次选择:file -- New -- Project,弹出框选择Spring Initializr,点击Next。
注意红框区域,选择Maven POM,其它可以自己填
又弹出一个框来,什么也不选,直接Next
选择地址(刚才新建的mypro文件夹)
至此,新建主目录结束
1.2、建立子目录
右键单击主目录mypro,选择New,选择Module
选择Spring Initializr,直接Next
注意这里红框选择了Maven Project,其他可以自己填,填完Next
便于测试,这里选择了Spring Web,点击Next,弹出框直接Next就创建成功了
至此,第一个子模块建立成功,按照上面的步骤依次建立其它子模块,我这里建立了lib和person。
1.3、调整pom配置
主模块:去掉依赖,引入子模块,注意pom打包时会用到
简单处理,把所有的依赖都由lib公共库引入,device和person模块引入lib公共库
首先修改lib模块:使用了主模块的内容,直接复制过来即可,注意jar
修改device模块:使用了主模块的内容,直接复制过来即可,注意war
引入lib
peron模块同上。
至此,项目建立完成。
步骤二:项目相关依赖,mongo,redis,mysql等简单说下:
1.1、mysql,使用的是mybatis-plus和代码生成器
mysql
mysql-connector-java
runtime
com.baomidou
mybatis-plus-boot-starter
3.3.0
com.baomidou
mybatis-plus-generator
3.3.0
org.apache.velocity
velocity-engine-core
2.1
代码生成器:(我放在test中,加注释的改成自己的就可以)
import org.springframework.boot.test.context.SpringBootTest;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
@SpringBootTest
public class CodeGenerator {
@Test
public void generateCode() {
String packageName = "com.sam.person"; // 当前的包
boolean serviceNameStartWithI = true;
generateByTables(serviceNameStartWithI, packageName);
}
private void generateByTables(boolean serviceNameStartWithI, String packageName) {
GlobalConfig config = new GlobalConfig();
// 改成自己的
String dbUrl = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useLegacyDatetimeCode=false&serverTimezOne=UTC";
DataSourceConfig dataSourceConfig = new DataSourceConfig();
// 用户名和密码
dataSourceConfig.setDbType(DbType.MYSQL).setUrl(dbUrl).setUsername("root").setPassword("123456").setDriverName("com.mysql.cj.jdbc.Driver");
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true).setEntityLombokModel(false)
.setNaming(NamingStrategy.underline_to_camel)
.setInclude("user"); // 对应数据库表名,表要先创建
config.setActiveRecord(false).setAuthor("sam") // 作者
.setOutputDir("/home/sam/mypro/person/src/main/java") // 路径,到/java就可以
.setFileOverride(true)
.setEnableCache(false);
if (!serviceNameStartWithI) {
config.setServiceName("%sService");
}
new AutoGenerator()
.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(new PackageConfig()
.setParent(packageName)
.setController("controller")
.setEntity("entity.Do"))
.execute();
}
}
不熟悉test的,可以放在如图这里,注意person有一个,device也要有一个,包和路径内容要调整下。
生成的结构与下图类似:
注意给启动类上加MapperScan: @MapperScan("com.sam.device.mapper"),person同理。
没有config,是后加的,application.yml见后。
开放远程连接:(重要)
https://www.cnblogs.com/zhangkaiqiang/p/6646488.html
1.2、mongodb,可参考我另一篇随笔
https://www.cnblogs.com/SamNicole1809/p/12097182.html
开放远程连接:(重要)(参考,主要是需要设置bind-ip: 0.0.0.0,并重启服务)
https://www.cnblogs.com/jinxiao-pu/p/7121307.html
1.3、redis,可参考我另一篇随笔
https://www.cnblogs.com/SamNicole1809/p/12097440.html
开放远程连接:(重要)
https://blog.csdn.net/mr_oldcold/article/details/81026928
1.4、yml配置,黄色标注的根据自己情况填,没有可以不填,host填主机的Ip,不是localhost或127.0.0.1,部署时要用,这也是为什么要把所有数据库的远程连接都打开的原因。
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://host:3306/test?useUnicode=true&characterEncoding=utf-8&useLegacyDatetimeCode=false&serverTimezOne=UTC
redis:
host: host
password: 123456
jedis:
pool:
max-active: 8
max-idle: 8
max-wait: -1ms
min-idle: 0
data:
mongodb:
uri: mongodb://sam:123456@host:27017/test
至此,数据库部分结束。