后台开发代码启动配置
概述
本文主要说明,基于的智平台基础模块代码为http://scm.hollysmart.com/jeecg2.4/jeecg-boot-framework.git 分支为smart_platform06版本的nacos连接属性的配置,服务启动的方式,以及防xss攻击,出现跨越问题的配置项进行说明;
ps: 本文所有涉及环境均以dev为例
nacos连接属性配置
1.找到jeecg-boot-starter-cloud模块,在src/main/resources目录下找到bootstrap-dev.yml文件
位置如图:
找到文件地址,文件内容如图:
spring:
nacos:
config:
# Nacos 认证用户
username: nacos
# Nacos 认证密码
password: nacos
# 配置中心地址
server-addr: 127.0.0.1:8848
# 配置对应的分组
group: DEFAULT_GROUP
# 配置文件后缀
file-extension: yaml
prefix: jeecg
# 支持多个共享 Data Id 的配置,优先级小于extension-configs,自定义 Data Id 配置 属性是个集合,内部由 Config POJO 组成。Config 有 3 个属性,分别是 dataId, group 以及 refresh
#shared-configs[0]:
#data-id: ${prefix.name}-common.yaml # 配置文件名-Data Id
#group: ${config.group} # 默认为DEFAULT_GROUP
#refresh: false # 是否动态刷新,默认为false
# 命名空间 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等
namespace: 6fa2b4be-35da-4359-af66-dbe805801608
discovery:
server-addr: 127.0.0.1:8848
watch:
enabled: false
namespace: 6fa2b4be-35da-4359-af66-dbe805801608
服务启动
1.服务启动时,指定对应环境
两种方式:
(1)-Dspring.profiles.active=dev
(2)指定active profiles 为dev
注意以上两种方式,在linux环境中,需要使用第一种方式,进行环境的指定
防xss功能
1.在配置文件jeecg-dev.yaml文件中找到jeecg.xss.enabled的配置,将配置项改为true即可
cors错误
1.在nacos的配置中,以dev举例,在jeecg-dev.yaml文件中找到jeecg.cors.allowed配置,增加运行访问的地址,多个以“,“分割,2.在jeecg-cloud-gateway服务中找到对应的配置文件,application-dev.yml中找到spring.cloud.gateway.globalcors.cors-configurations.allowedOrigins属性中增加允许通过的地址,即可
swagger升级到3.x
1.启动jeecg-cloud-openapi服务,该服务在生产环境中不部署,只用于在开发环境
2.启动成功后,访问 http://localhost:10002/webjars/swagger-ui/index.html
访问后可以选择要查看的微服务模块,如jeecg-system
配置自动刷新功能
如果需要配置自动刷新,不需要重启服务的话,建议在jeecg-config模块中的JeecgProperties.java文件中,增加自己想要的配置类。
具体的配置可以参考JeecgProperties类的内容来增加自己的配置。
package org.jeecg.cloud.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* All rights Reserved
*
* @author liujh
* @version V1.0.0
* @title: JeecgProperties
* @description:
* @date: 2022/4/15 10:44
* @remark: 配置类
*/
@Component
@ConfigurationProperties(prefix = "jeecg")
@RefreshScope
@Data
public class JeecgProperties {
private String uploadType;
private Path path;
private Shiro shiro;
private Oss oss;
private Elasticsearch elasticsearch;
private Desform desform;
private Minio minio;
private Jmreport jmreport;
private Wps wps;
private Xxljob xxljob;
private RouteConfig routeConfig;
private Redisson redisson;
private String fileViewDomain;
private Cors cors;
private Xss xss;
private Hollysmart hollysmart;
private Token token;
private Login login;
/**
* 上传文件配置
*/
@Data
public static class Path {
private String upload;
private String webapp;
}
/**
* shiro 配置
*/
@Data
public static class Shiro {
private String excludeUrls;
}
/**
* oss配置
*/
@Data
public static class Oss {
private String endpoint;
private String accessKey;
private String secretKey;
private String staticDomain;
private String bucketName;
}
/**
* es配置
*/
@Data
public static class Elasticsearch {
private String clusterName;
private String clusterNodes;
private String checkEnable;
}
/**
* desform配置
*/
@Data
public static class Desform {
private String themeColor;
private String uploadType;
private String baseUrl;
private String extranetUrl;
}
/**
* minio
*/
@Data
public static class Minio {
private String minioUrl;
private String minioName;
private String minioPass;
private String bucketName;
}
/**
* jm
*/
@Data
public static class Jmreport {
private String mode;
private Boolean isVerifyToken;
private String verifyMethods;
}
/**
* wps
*/
@Data
public static class Wps {
private String domain;
private String appid;
private String appsecret;
}
/**
* xxljob
*/
@Data
public static class Xxljob {
private Boolean enabled;
private String adminAddresses;
private String appname;
private String accessToken;
private String address;
private String ip;
private Integer port;
private String logPath;
private String logRetentionDays;
}
/**
* route
*/
@Data
public static class RouteConfig {
private String dataId;
private String group;
private String dataType;
}
/**
* redisson
*/
@Data
public static class Redisson {
private String address;
private String password;
private String type;
private Boolean enabled;
}
/**
* cros
*/
@Data
public static class Cors {
private List<String> allowed;
}
/**
* xss
*/
@Data
public static class Xss {
private Boolean enabled;
/**
* 排除路径
*/
private List<String> excludeUrls = new ArrayList<>();
}
/**
* hollysmart
*/
@Data
public static class Hollysmart {
private String sysUserRoleTimeOut;
private String sysUserPermissionTimeOut;
private String onlineAuthTimeOut;
private String loginErrTimes;
private String loginLock;
private String gateWayCheckToken;
}
/**
* token
*/
@Data
public static class Token {
private String expire;
private String refExpire;
}
/**
* login
*/
@Data
public static class Login {
private String customLogin;
private String baseCustomPwd;
}
}
如果不使用此方式,而是用自己的配置类使用@Value注解,注入自己的配置时,可以在类文件上增加@RefreshScope注解,可以实现配置的实时刷新,而不用重启服务。
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。