Java项目一般的配置

目录

配置文件中的配置

数据库一般配置

登录拦截器配置

公共字段自动填充配置


配置文件中的配置

#一般配置

#设置端口
serve.port=8080
#应用上下文
serve.servlet.context-path:/*
#连接数据库
spring.datasource.url=jdbc:mysql://localhost:3306/biao?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#数据库账号
spring.datasource.username=root
#数据库密码
spring.datasource.password=root
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#定义mapper接口位置
mybatis.mapper-locations=classpath:mapper/*.xml

#全局雪花算法配置

mybatis-plus.global-config.db-config.id-type=assign_id

注意:

1.使用雪花算法的类型一般为Long型,数据库为bigint类型。

2.Java后端Long类型是19位的,前端JS的数字类型是16位的,所以传输数据是会造成精度损失,可以在实体的主键id上加上注解@JsonSerialize(using=ToStringSerializer.class)解决。

#自定义配置 

例如:

#自定义的文件上传存储位置
ruiji.path: D:\SpringbootTemp\image\

用注解@value("${ruiji.path}")注入值。 如下示范:

 

#redis配置 

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    #password: 123321
    lettuce:
      pool:
        max-active: 10    #最大连接
        max-idle: 10    #最大空闲连接
        min-idle: 1    #最小空闲连接
        max-wait: -1    #连接等待时间

#读写分离配置

spring:
  shardingsphere:
    datasource:
      names:
        master,slave
      # 主库(增删改操作)
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://121.89.200.204:3306/ruiji?characterEncoding=utf-8
        username: root
        password: root
      # 从数据源(读操作)
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://121.89.200.205:3306/ruiji?characterEncoding=utf-8
        username: root
        password: root
    masterslave:
      # 读写分离配置
      load-balance-algorithm-type: round_robin #轮询(如果有多个从库会轮询着读)
      # 最终的数据源名称
      name: dataSource
      # 主库数据源名称
      master-data-source-name: master
      # 从库数据源名称列表,多个逗号分隔
      slave-data-source-names: slave
    props:
      sql:
        show: true #开启SQL显示,默认false
  main:
    allow-bean-definition-overriding: true

相关依赖:

<dependency>
        <groupId>org.apache.shardingsphere</groupId>
        <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
        <version>4.0.0-RC1</version>

 </dependency>

数据库一般配置

#时间自增

类型设置为datetime,默认设置为CURRENT_TIMESTAMP

 

登录拦截器配置

#实现HandlerInterceptor拦截器

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        if (session.getAttribute("id") == null) {
            response.sendRedirect("/backend/page/login/login.html");        
            return false;
        }
        String s = session.getAttribute("id").toString();
        Long id = Long.valueOf(s);
        return true;
    }
}

#登录拦截器配置(哪些放行,哪些拦截)

@Configuration
public class LoginInterceptorConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        LoginInterceptor interceptor = new LoginInterceptor();
        ArrayList list = new ArrayList();
        list.add("/**/*.js");
        list.add("/**/*.css");
        list.add("/backend/images/**");
        list.add("/backend/page/login/login.html");
        list.add("/employee/login");
        list.add("/employee/logout");
        list.add("/front/**");
        list.add("/user/sendMsg");
        list.add("/user/login");
        registry.addInterceptor(interceptor).addPathPatterns("/**").excludePathPatterns(list);
    }
}

注意:要加上注解@Configuration。前端放行js、css、图片、登录的html等,后端放行登录方法和退出方法等。

公共字段自动填充配置

#实现MetaObjectHandler元处理器

public class MyMetaObjectHandler implements MetaObjectHandler {

    @Autowired
    private HttpSession httpSession;

    @Override
    public void insertFill(MetaObject metaObject) {
        metaObject.setValue("createUser",Long.valueOf(httpSession.getAttribute("id").toString()));
        metaObject.setValue("updateUser",Long.valueOf(httpSession.getAttribute("id").toString()));
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        metaObject.setValue("updateUser",Long.valueOf(httpSession.getAttribute("id").toString()));
    }
}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值