新银河是诚信为本,市场在变,我们的诚信永远不变...
详解 Boot 部署与服务配置
更新时间:2017年03月22日 10:14:31 作者:
本篇文章主要介绍了详解 Boot 部署与服务配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置容器或Jetty容器,具体由配置来决定(默认)。当然你也可以将项目打包成war包,放到独立的web容器中(、等等),当然在此之前你要对程序入口做简单调整。
项目构建我们使用Maven或,这将使项目依赖、jar包管理、以及打包部署变的非常方便。
一、内嵌 配置
Boot将容器内置后,它通过配置文件的方式类修改相关配置。
先看一下下面的图,为关于的配置列项:
其中常用的配置只有少数几个,已经用紫色标记起来。红框圈起来的部分,看名称分类就可以明白其作用。
对的几个常用的配置做个简单说明:
# 项目contextPath,一般在正式发布版本中,我们不配置 server.context-path=/myspringboot # 错误页,指定发生错误时,跳转的URL。请查看BasicErrorController源码便知 server.error.path=/error # 服务端口 server.port=9090 # session最大超时时间(分钟),默认为30 server.session-timeout=60 # 该服务绑定IP地址,启动服务器时如本机不是该IP地址则抛出异常启动失败,只有特殊需求的情况下才配置 # server.address=192.168.16.11
为 Boot的默认容器,下面是几个常用配置:
# tomcat最大线程数,默认为200 server.tomcat.max-threads=800 # tomcat的URI编码 server.tomcat.uri-encoding=UTF-8 # 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹(如:C:\Users\Shanhy\AppData\Local\Temp) server.tomcat.basedir=H:/springboot-tomcat-tmp # 打开Tomcat的Access日志,并可以设置日志格式的方法: #server.tomcat.access-log-enabled=true #server.tomcat.access-log-pattern= # accesslog目录,默认在basedir/logs #server.tomcat.accesslog.directory= # 日志文件目录 logging.path=H:/springboot-tomcat-tmp # 日志文件名称,默认为spring.log logging.file=myapp.log
Jetty
如果你要选择Jetty,也非常简单,就是把pom中的依赖排除,并加入Jetty容器的依赖,如下:
org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-tomcatorg.springframework.boot spring-boot-starter-jetty
打包
打包方法:
CMD进入项目目录,使用 mvn clean 命令打包,以我的项目工程为例:
E:\-boot->mvn clean
可以追加参数 -.test.skip=true 跳过测试。
打包后的文件存放于项目下的目录中,如:-boot--0.0.1-.jar
如果pom配置的是war包,则为-boot--0.0.1-.war
二、部署到容器
修改启动类,继承 并重写 方法
public class SpringBootSampleApplication extends SpringBootServletInitializer{ private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class); @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(this.getClass()); } }
修改pom文件中jar 为 war
war
修改pom,排除插件
org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-tomcat
打包部署到容器
使用命令 mvn clean 打包后,同一般J2EE项目一样部署到web容器。
三、使用区分环境
boot 可以在 “配置文件”、“Java代码类”、“日志配置” 中来配置区分不同环境执行不同的结果
1、配置文件
使用配置文件.yml 和 . 有所区别
以. 为例,通过文件名来区分环境 -{}.
.
app.name=MyApp server.port=8080 spring.profiles.active=dev
-dev.
server.port=8081
-stg.
server.port=8082
在启动程序的时候通过添加 –..={} 来指定具体使用的配置
例如我们执行 java -jar demo.jar –..=dev 那么上面3个文件中的内容将被如何应用?
Boot 会先加载默认的配置文件,然后使用具体指定的中的配置去覆盖默认配置。
app.name 只存在于默认配置文件 . 中真人百家家乐app,因为指定环境中不存在同样的配置,所以该值不会被覆盖
.port 默认为8080,但是我们指定了环境后,将会被覆盖。如果指定stg环境,.port 则为 8082
.. 默认指定dev环境,如果我们在运行时指定 –..=stg 那么将应用stg环境,最终 .port 的值为8082
2、Java类中@注解
下面2个不同的类实现了同一个接口,@注解指定了具体环境
// 接口定义 public interface SendMessage { // 发送短信方法定义 public void send(); } // Dev 环境实现类 @Component @Profile("dev") public class DevSendMessage implements SendMessage { @Override public void send() { System.out.println(">>>>>>>>Dev Send()<<<<<<<<"); } } // Stg环境实现类 @Component @Profile("stg") public class StgSendMessage implements SendMessage { @Override public void send() { System.out.println(">>>>>>>>Stg Send()<<<<<<<<"); } } // 启动类 @SpringBootApplication public class ProfiledemoApplication { @Value("${app.name}") private String name; @Autowired private SendMessage sendMessage; @PostConstruct public void init(){ sendMessage.send();// 会根据profile指定的环境实例化对应的类 } }
3、-.xml也支持有节点来支持区分
再说一遍文件名不要用.xml 请使用-.xml
四、指定外部的配置文件
有些系统,关于一些数据库或其他第三方账户等信息,由于安全问题,其配置并不会提前配置在项目中暴露给开发人员。
对于这种情况,我们在运行程序的时候,可以通过参数指定一个外部配置文件。
以 demo.jar 为例,方法如下:
复制代码 代码如下:
java -jar demo.jar --..=/opt//.
其中文件名随便定义,无固定要求。
五、创建一个Linux 应用的sh脚本
下面几个脚本仅供参考,请根据自己需要做调整
start.sh
#!/bin/sh rm -f tpid nohup java -jar myapp.jar --spring.config.location=application.yml > /dev/null 2>&1 & echo $! > tpid echo Start Success!
stop.sh
#!/bin/sh APP_NAME=myapp tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 5 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi
check.sh
#!/bin/sh APP_NAME=myapp tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'App is running.' else echo 'App is NOT running.' fi
kill.sh
#!/bin/sh APP_NAME=myapp tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid fi
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
真人百家家乐app,愿您夜夜笙歌,祝我们的祖国和平昌盛国泰民安
环境振动测量 《建筑环境通用规范》GB 55016-2021
2.3 隔振设计
2.3 隔振设计
2.3.1 当噪声与振动敏感建筑或设有对噪声、振动敏感房间的建筑物,附近有可觉察的固定振动源,或距建筑外轮廓线50m范围内有城市轨道交通地下线时,应对其建设场地进行环境振动测量。
展开条文说明
2.3.1 对于可能存在的环境振动干扰,只有了解、掌握准确的环境振动水平及振动特性,获得准确的环境振动参数,才能针对振动特点制定合理、有效、安全、经济的环境振动控制措施,达到、满足建筑使用正常的环境振动、噪声条件。
根据对我国北京、上海、广州等部分城市轨道交通运行振动影响范围的研究及检测,轨道交通对沿线环境振动的影响主要由地下线路产生;当与地下线之间的距离超过50m后,环境振动基本达到现行国家标准《城市区域环境振动标准》GB 10070规定的“居民、文教区”即“1类”声环境功能区。因此,本条提出如距建筑50m范围内有轨道交通地下线路,需做环境振动测量。
2.3.2 当噪声与振动敏感建筑或设有对噪声、振动敏感房间的建筑物的建设场地振动测量结果超过2类声环境功能区室外环境振动限值规定时,应对建筑整体或建筑内敏感房间采取隔振措施,并应符合本规范表2.1.3和表2.1.5的规定。
展开条文说明
2.3.2 将建筑振动问题前置是发达国家的通用做法,并经长期建筑声环境设计实践证明是最经济、可行、有效的方法,国内也有类似规定。生态环境部《环境影响评价技术导则-城市轨道交通》HJ 453-2018 “9.3振动防治对策”的一般原则规定:“坚持预防为主原则,合理规划轨道交通与邻近建筑的布局。振动防治措施应根据振动预测结果、振动环境保护目标、文物保护单位内的不可移动文物的特点,结合国家政策、经济、技术可行性提出振动污染防治措施和对策”。防治措施包括:振源控制、传播路径控制、建筑物控制。
因此,建设项目方案设计阶段必须统筹考虑环境振动问题。当振动噪声敏感建筑的建设场地即建筑外部环境振动超标,可能对建筑功能、建筑内部环境造成振动噪声干扰时,需根据振源位置、场地振动特性和建筑结构类型、特点等,对建筑整体或建筑内噪声敏感房间采取经济合理的隔振技术措施,如建筑基础隔振,结合施工场地护坡桩设置隔振排桩;对建筑内振动、噪声敏感房间设计全浮筑“房中房”构造等恰当、有效的隔振措施。避免建成后噪声敏感建筑或噪声敏感房间振动、噪声超标,损害人员的身心健康,影响建筑、设备、设施的正常使用。
制定隔振方案时真人百家家乐app,需同时考虑环境振动、背景噪声及建筑配套设备、设施的振动、噪声影响,使主要用房正常使用时,满足本规范表2.1.3与表2.1.5的室内噪声与振动限值规定。
噪声与振动敏感建筑物指住宅、医院、学校、旅馆、办公场所等具有较高噪声与振动环境保护要求的建筑。噪声敏感房间指卧室、起居室、客房、阅览室、教室、病房、诊室、办公室、会议室(厅)、观众厅、录音室等需要保持安静的房间。振动敏感房间指卧室、起居室、客房、阅览室、教室、病房、诊室、办公室、会议室等振动环境保护要求较高的房间。
2.3.3 对建筑物内部产生噪声与振动的设备或设施,当其正常运行对噪声、振动敏感房间产生干扰时,应对其基础及连接管线采取隔振措施,并应符合本规范表2.1.4和表2.1.5的规定。
展开条文说明
2.3.3 为建筑配套、运行噪声与振动较大的机电设备、设施,被设置于住宅、学校、医院、酒店、办公等同一建筑内部已成为常态。在建筑方案设计阶段,从建筑平、剖面布局上进行闹静分区、相对集中、合理布置,对建筑声环境的改善及机电设备的噪声、振动控制起到事半功倍的作用。将存在运行噪声、振动较大的机电设备设于噪声敏感房间上部,需由声学专业技术人员根据房间功能需求及设备振动噪声特性做专业噪声、振动控制设计,并准确实施,以降低建成后噪声敏感房间噪声、振动超标风险。
制定建筑内部设备、设施的隔振方案时,需同时考虑环境振动、背景噪声、建筑外部配套设备、设施的振动、噪声影响,使主要用房正常使用时,满足表2.1.4和表2.1.5的室内噪声与振动限值规定。
2.3.4 对建筑物外部具有共同基础并产生噪声与振动的室外设备或设施,当其正常运行对噪声、振动敏感房间产生干扰时,应对其基础及连接管线采取隔振措施,并应符合本规范表2.1.3和表2.1.5的规定。
展开条文说明
2.3.4 切断、降低影响建筑室内声环境的各种振动源通过建筑、结构振动传递的途径,避免室内振动以及固体传声引发室内噪声级超标。
振动通过建筑结构基础、柱、梁、板及墙体在建筑内传递,与建筑结构刚性安装、固定、接触的设备及其连接管线的振动,均会引起建筑结构振动并产生结构噪声,造成敏感用房室内噪声超标。因此,需对振动传递的所有途径采取隔振措施方能达到室内噪声限值规定及功能使用要求。
制定隔振方案时,需同时考虑环境振动、背景噪声及建筑配套设备、设施的振动、噪声影响,使主要用房正常使用时,满足本规范表2.1.4的室内噪声限值规定。
2.3.5 设备或设施的隔振设计以及隔振器、阻尼器的配置,应经隔振计算后制定和选配。
展开条文说明
2.3.5 隔振设计方案必须根据隔振降噪目标,设备转速、荷载、扰力、运行方式等经隔振计算制定,方能保证隔振措施安全、有效。在已有的工程实践中,存在单纯以设备功率来制定隔振设计方案的错误做法。因隔振措施不当产生共振而导致设备、建筑安全风险。
真人百家家乐app,愿您夜夜笙歌,祝我们的祖国和平昌盛国泰民安