前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式项目搭建的一些小结

分布式项目搭建的一些小结

作者头像
时光潜流
发布2022-12-26 19:55:20
2390
发布2022-12-26 19:55:20
举报
文章被收录于专栏:博客专栏博客专栏

    前几天又从头开始创建了一个多模块的分布式的项目,过程中还是有不少问题的,这里做一些小结:

1.配置注入,下面二选一。   为了有提示等,引入spring-boot-configuration-processor     ① @EnableConfigurationProperties + @ConfigurationProperties         不需要注册,使用enable开启注册     ② @Componet + @ConfigurationProperties         直接加入容器 2.扫描mapper接口并且实现,下面二选一     ① @Mapper         每一个接口都加该注解     ② @MapperScan         只要主类加上这个接口 3.多模块的工程,如果maven出现导入错误,可能是循环依赖的原因。  这时,我们需要给父工程install一下,可能就自动好了。 4.多模块项目创建父工程引入springboot依赖的两种方式

    ① <parent> 设置spring-boot-starter-parent

    ② <dependencyManagement>配置dependencies以pom方式导入

代码语言:javascript
复制
       <dependencyManagement>
        	<dependencies>
         	   <dependency>
         	       <groupId>org.springframework.boot</groupId>
         	       <artifactId>spring-boot-dependencies</artifactId>
                	<version>2.7.2</version>
    	           <type>pom</type>
    	            <scope>import</scope>
   	         </dependency>
   	     </dependencies>
   	   </dependencyManagement>

5.要能够使用web模块,需要引入spring-boot-starter-web  要能够使用mysql模块,大致需要:  druid-spring-boot-starter/mysql-connector-java/mybatis-spring-boot-starter 6.yml方式配置数据库密码时,如果密码以0开头,密码要加引号。 7.com.sql.Date或者Time或者TimeStamp格式作为pojo成员变量时,数据格式对齐需要设置:

代码语言:javascript
复制
  spring:
    jackson:
      date-format: yyyy-MM-dd HH:mm:ss,
      time-zone: GMT+8 # 如果设置,timestamp会有时差计算

8.mybatisplus,可以替换掉mybatis依赖,引入了mybatis依赖无需再引入mybatis。

    如果字段是自增主键,pojo需要注解:@TableId(type = IdType.AUTO)      如果使用mybatisplus,需要mapper接口继承BaseMapper<POJOTYPE>接口。

9.springboot带数据库相关依赖时,启动时候要datasource的url,可以如下配置暂且关闭自动注入:

代码语言:javascript
复制
        @SpringBootApplication(
	exclude ={
		DataSourceAutoConfiguration.class, 
		HibernateJpaAutoConfiguration.class
		}
	)

10.springboot和springcloud大版本一定要统一,否则解析不出来!!!   启动前需要先进行基本的配置,否则报错。   eureka模块中包含了web模块,使用网飞的依赖spring-cloud-starter-netflix-eureka-server 11.如果发现配置都正确,结果eureka管理页面还是打不开,可能是idea的问题,重启idea可能发现就好了。 12.使用openfeign进行服务调用时,原service设置了日期dateFormat,调用侧也要设置日期样式,并且RetResult需要有默认的构造器。 13.redis从节点只有读的权限。redis选择指定数据库select <index>

代码语言:javascript
复制
   @Bean
    public RedisTemplate<String, Serializable> getRedisTemplate(LettuceConnectionFactory connectionFactory){
        RedisTemplate<String, Serializable> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(connectionFactory);
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }

14.util日期格式注解   @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)   private Date time; 15.mongodbd的id类型是ObjectId, 书写的时候可以用String,但绝不是int。

❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

欸嘿,加个博客同步声明的博文链接:

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=34w7b77jjxyc8

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档