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

2022-12-26 19:55:20 浏览数 (1)

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

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

0 人点赞