【尚庭公寓|项目开发】第二天

摘要:

        本文主要介绍了如何配置尚庭公寓的大体架构。首先,通过application.yaml文件配置了服务器端口、数据库连接(使用Hikari连接池)、Redis和Minio对象存储等。接着,在common模块中编写了配置类,包括Redis配置、MyBatis分页插件和字段自动填充、以及Minio配置类的实现。此外,还导入了model模块的枚举类和实体类,并配置了Lombok。最后,在web-admin模块中导入了控制器、映射器等框架组件,并编写了启动类AdminWebApplication,确保应用能够正确启动并扫描相关包路径。这些步骤为构建一个完整的Spring Boot应用提供了基础配置和实现细节。

 

一,完善aplication.yaml文件

端口8081/8082,数据库(hikari),redis以及对象存储minio等配置

server:
  port: 8082
spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://192.168.xxx.xxx:3306/lease?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2b8
    username: xxx
    password: xxxxx
    hikari:
      connection-test-query: SELECT 1 # 自动检测连接
      connection-timeout: 60000 #数据库连接超时时间,默认30秒
      idle-timeout: 500000 #空闲连接存活最大时间,默认600000(10分钟)
      max-lifetime: 540000 #此属性控制池中连接的最长生命周期,值0表示无限生命周期
      maximum-pool-size: 12 #连接池最大连接数,默认是10
      minimum-idle: 10 #最小空闲连接数量
      pool-name: SPHHikariPool # 连接池名称
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss #日期格式
    time-zone: GMT+8  #时区,东2i八区
  data:
    redis:
      host: 192.168.xxx.xxx
      port: 6379
      password: xxx
      database: 0
#用于打印框架生成的sql语句,便于调试
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
minio:
  endpoint: http://192.168.xxx.xxx:9000
  accessKey: xxxx
  secretKey: xxxx
  bucketName: lease
springdoc:
  default-flat-param-object: true #开启测试文档查询条件分类显示

二,common模块编写对应的配置类(RedisConfiguration,mybatisconfig.......) 

1,redis及静态常量类

@Configuration
public class RedisConfiguration {
    @Bean
    public RedisTemplate<String, Object> stringObjectRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        // 设置key的序列化方式
        template.setKeySerializer(RedisSerializer.string());
        // 设置value的序列化方式
        template.setValueSerializer(RedisSerializer.java());
        return template;
    }
}

public class RedisConstant {
    public static final String ADMIN_LOGIN_PREFIX = "admin:login:";
    public static final Integer ADMIN_LOGIN_CAPTCHA_TTL_SEC = 60;
    public static final String APP_LOGIN_PREFIX = "app:login:";
    public static final Integer APP_LOGIN_CODE_RESEND_TIME_SEC = 60;
    public static final Integer APP_LOGIN_CODE_TTL_SEC = 60 * 10;
    public static final String APP_ROOM_PREFIX = "app:room:";
}

2,mybatis(分页插件注册及字段自动填充)

@Configuration
public class MybatisConfig{
    //注册分页查询的组件到IOC容器,纯模板
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

@Component
public class MybatisMetaObjectHandler implements MetaObjectHandler {
    // 在插入数据时,自动填充createTime字段
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
    }
    // 在更新数据时,自动填充updateTime字段
    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());

    }
}

 3,minio(yaml读取类及注册配置类)

@Data
@ConfigurationProperties(prefix = "minio")
public class MinioProperties {
    private String endpoint;
    private String accessKey;
    private String secretKey;
    private String bucketName;
}

@Configuration
//表示生效条件,模块yaml文件有minio配置才会生效
@ConditionalOnProperty(name = "minio.endpoint")
//第二种注册方式,直接扫描包下的要注册的类
@ConfigurationPropertiesScan(basePackages = "com.atguigu.lease.common.minio")
public class MinioConfiguration {
    @Autowired
    private MinioProperties minio;
    @Bean
    public MinioClient minioClient(){
        return MinioClient.builder().endpoint(minio.getEndpoint())
                .credentials(minio.getAccessKey(), minio.getSecretKey()).build();
    }
}

三,导入model模块的各种枚举类和实体类

同时,在model模块的Java目录下新建一个lombok.config配置文件,为了后期打包需要,填入下列字段:

config.stopBubbling=true
lombok.equalsAndHashCode.callSuper=call

四,导入web-admin模块的框架,如:controller,mapper等

编写启动类AdminWebApplication,并且加上包扫描器@MapperScan("mapper层所在全路径")

@SpringBootApplication
@MapperScan("com.atguigu.lease.web.admin.mapper")
public class AdminWebApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminWebApplication.class, args);
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值