新手必看

新手必看

常见问题必读帮助文件
鸿宇官网

鸿宇官网

鸿宇科技官方网站
鸿宇教程库

鸿宇教程库

鸿宇科技官方教程
功能反馈与建议

功能反馈与建议

BUG反馈问题建议
鸿宇淘宝店铺

鸿宇淘宝店铺

鸿宇官方唯一淘宝店铺
鸿宇社区

鸿宇社区

最懂你的服务网 鸿宇商城|大商创|问题解答
鸿宇商城

鸿宇商城

主营业务为:源码、教程、云盘资源等
鸿宇商城使用手册

鸿宇商城使用手册

HongYuJD多用户商城平台使用手册V1.0

Spring Boot配置文件放在jar外部

Shadow 发表了文章 • 0 个评论 • 131 次浏览 • 2018-04-11 14:32 • 来自相关话题

 官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇社区:www.fuwuweb.com
鸿宇QQ群:(Vip会员群)90664526、(普通会员群)153585696

参见Externalized Configuration
 
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢?

查询官网,可以得到下面的几种方案:

通过命令行指定

SpringApplication会默认将命令行选项参数转换为配置信息
例如,启动时命令参数指定:java -jar myproject.jar --server.port = 9000从命令行指定配置项的优先级最高,不过你可以通过setAddCommandLineProperties来禁用SpringApplication.setAddCommandLineProperties(false).外置配置文件

Spring程序会按优先级从下面这些路径来加载application.properties配置文件

当前目录下的/config目录
当前目录
classpath里的/config目录
classpath 跟目录

因此,要外置配置文件就很简单了,在jar所在目录新建config文件夹,然后放入配置文件,或者直接放在配置文件在jar目录

自定义配置文件

如果你不想使用application.properties作为配置文件,怎么办?完全没问题java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties或者java -jar -Dspring.config.location=D:\config\config.properties springbootrestdemo-0.0.1-SNAPSHOT.jar 当然,还能在代码里指定@SpringBootApplication
@PropertySource(value={"file:config.properties"})
public class SpringbootrestdemoApplication {

public static void main(String args) {
SpringApplication.run(SpringbootrestdemoApplication.class, args);
}
}按Profile不同环境读取不同配置

不同环境的配置设置一个配置文件,例如:

dev环境下的配置配置在application-dev.properties中;
prod环境下的配置配置在application-prod.properties中。

在application.properties中指定使用哪一个文件spring.profiles.active = dev当然,你也可以在运行的时候手动指定:java -jar myproject.jar --spring.profiles.active = prod
  查看全部
 官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇社区:www.fuwuweb.com
鸿宇QQ群:(Vip会员群)90664526、(普通会员群)153585696

参见Externalized Configuration
 
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢?

查询官网,可以得到下面的几种方案:

通过命令行指定

SpringApplication会默认将命令行选项参数转换为配置信息
例如,启动时命令参数指定:
java -jar myproject.jar --server.port = 9000
从命令行指定配置项的优先级最高,不过你可以通过setAddCommandLineProperties来禁用
SpringApplication.setAddCommandLineProperties(false).
外置配置文件

Spring程序会按优先级从下面这些路径来加载application.properties配置文件

当前目录下的/config目录
当前目录
classpath里的/config目录
classpath 跟目录

因此,要外置配置文件就很简单了,在jar所在目录新建config文件夹,然后放入配置文件,或者直接放在配置文件在jar目录

自定义配置文件

如果你不想使用application.properties作为配置文件,怎么办?完全没问题
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
或者
java -jar -Dspring.config.location=D:\config\config.properties springbootrestdemo-0.0.1-SNAPSHOT.jar 
当然,还能在代码里指定
@SpringBootApplication
@PropertySource(value={"file:config.properties"})
public class SpringbootrestdemoApplication {

public static void main(String args) {
SpringApplication.run(SpringbootrestdemoApplication.class, args);
}
}
按Profile不同环境读取不同配置

不同环境的配置设置一个配置文件,例如:

dev环境下的配置配置在application-dev.properties中;
prod环境下的配置配置在application-prod.properties中。

在application.properties中指定使用哪一个文件
spring.profiles.active = dev
当然,你也可以在运行的时候手动指定:
java -jar myproject.jar --spring.profiles.active = prod

 

Spring Boot 获取配置文件中的中文乱码原因和解决方案

Shadow 发表了文章 • 0 个评论 • 185 次浏览 • 2018-04-11 14:11 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇社区:www.fuwuweb.com
鸿宇QQ群:(Vip会员群)90664526、(普通会员群)153585696
 
一、出错原因:
application.properties 配置中文值的时候,读取出来的属性值会出现乱码问题。但是 application.yml 不会出现乱码问题。原因是,Spring Boot 是以 iso-8859 的编码方式读取 application.properties 配置文件。
 
二、解决方案:
如果IDEA直接设置 File Encodings的Transparent native-to-ascii conversion为true即可!
  查看全部
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇社区:www.fuwuweb.com
鸿宇QQ群:(Vip会员群)90664526、(普通会员群)153585696
 
一、出错原因:
application.properties 配置中文值的时候,读取出来的属性值会出现乱码问题。但是 application.yml 不会出现乱码问题。原因是,Spring Boot 是以 iso-8859 的编码方式读取 application.properties 配置文件。
 
二、解决方案:
如果IDEA直接设置 File Encodings的Transparent native-to-ascii conversion为true即可!
 

Spring Boot项目在IntelliJ IDEA中实现热部署

Shadow 发表了文章 • 0 个评论 • 229 次浏览 • 2018-04-09 19:47 • 来自相关话题

官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇社区:www.fuwuweb.com
鸿宇QQ群:(Vip会员群)90664526、(普通会员群)153585696
 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。
原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)

一、开启idea自动make功能 

1、CTRL + SHIFT + A --> 查找 make project automatically --> 选中




2、CTRL + SHIFT + A --> 查找 Registry --> 找到并勾选compiler.automake.allow.when.app.running




3、最后重启idea
 
二、使用spring-boot-1.3开始有的热部署功能 

1、加maven依赖<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
三、Chrome禁用缓存
 
F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open)





至此,在IntelliJ IDEA中就可以愉快的修改代码了,修改后可以及时看到效果,无须手动重启和清除浏览器缓存。
 
测试方法:
1.修改类-->保存:应用会重启
2.修改配置文件-->保存:应用会重启
3.修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)

不能使用分析:
1.对应的spring-boot版本是否正确,我这里使用的是2.0.1.RELEASE版本;
2.Intellij IDEA是否开启了Make Project Automatically。
3.如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。 查看全部
官方出品:鸿宇科技
鸿宇论坛:bbs.hongyuvip.com
鸿宇社区:www.fuwuweb.com
鸿宇QQ群:(Vip会员群)90664526、(普通会员群)153585696
 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。
原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)

一、开启idea自动make功能 

1、CTRL + SHIFT + A --> 查找 make project automatically --> 选中
824490-20170404213116003-699199821.png

2、CTRL + SHIFT + A --> 查找 Registry --> 找到并勾选compiler.automake.allow.when.app.running
824490-20170404213933222-1782823544.png

3、最后重启idea
 
二、使用spring-boot-1.3开始有的热部署功能 

1、加maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>

三、Chrome禁用缓存
 
F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open)
824490-20170404213518191-1967052809.png


至此,在IntelliJ IDEA中就可以愉快的修改代码了,修改后可以及时看到效果,无须手动重启和清除浏览器缓存。
 
测试方法:
1.修改类-->保存:应用会重启
2.修改配置文件-->保存:应用会重启
3.修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)

不能使用分析:
1.对应的spring-boot版本是否正确,我这里使用的是2.0.1.RELEASE版本;
2.Intellij IDEA是否开启了Make Project Automatically。
3.如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。