当前位置:网站首页>Make Jar, Not War
Make Jar, Not War
2022-07-07 01:21:00 【Small box technology sharing】
Around the 4 Years ago , About java The application is finally marked jar
Package or war
The choice of bag makes me confused .
At that time, more applications were made war
Bag , Even if we know it can be played jar
package , But before, they were beaten war
package , And it seems to be jar
There are no obvious benefits of the bag .
But what puzzled me at that time was that more and more practices were turning to fight without giving much reason jar
package , So I began to think ......
war Reasons for the package
In a large OTA Inside the enterprise , The application is still marked war
package , PaaS The platform will be automatically installed and configured tomcat, I know this is for web server It is good for unified configuration and operation and maintenance . be based on war
Behind the series CI/CD 、DevOps The process must have corresponding adaptation , Even if jar
There are some advantages I don't know, and it's impossible to use them inside large enterprises overnight , The platform and system need to be adjusted .
SpringBoot At that time, it was not as popular as it is now , This does not mean that people do not use it , I mean relatively new projects , There will be many inside the enterprise “ Old system ” Need to maintain , We can't expect to replace these old systems with new technology stacks at once , Just like you know now web application
Generally, the front and back ends are developed separately , But if you take over a use jsp
The old guy , You have to maintain that it's not ?
jar Era
Times are different , It seems like decades have passed , But in fact, it's only a few years . But just a few years is enough to change the face of some things .
Now , Cloud native 、 Micro services are popular , It seems that everyone has been very adapted to this development mode , No one is bothered about whether to use SpringBoot, It will only discuss whether the version used is high or low . Not to mention the packaging , It's natural to use jar
, Although this kind of looks “ Best practices ”, In the long-term development process, it will form “ Muscle memory ”, But we still need to discuss why .
convenient
Can run Jar It is a convenient way to package self-contained and runnable applications . such , We can minimize dependencies . Can pass Spring boot Maven and Gradle plugin To manage dependency .
Yunyuan is friendly
In the case of self provided containers (docker,k8s), jar
The package can be directly used as a single application
To manage .
In the past we used to use war
It's for multiple applications to share web server, Now is the world of containers , In a container , Generally, only one application process is run . Because there is only one process , We can easily manage it , For example, restart ( Will not affect other applications , Because there are no other applications ).
version control
utilize git
And other version control software , You can control everything you need to run the program ( Such as configuration files )
extensible
for example , Copy it to another server , then “ just run it!” No installation and / Or configure the container
Reference resources
https://medium.com/@satyajit.nalavade/make-jar-not-war-josh-long-d6ce5fbb8a23
This paper is written by mdnice Multi platform Publishing
边栏推荐
- Oracle: Practice of CDB restricting PDB resources
- Lldp compatible CDP function configuration
- Anfulai embedded weekly report no. 272: 2022.06.27--2022.07.03
- Taro 小程序开启wxml代码压缩
- HMM 笔记
- [100 cases of JVM tuning practice] 04 - Method area tuning practice (Part 1)
- 第三方跳转网站 出现 405 Method Not Allowed
- 斗地主游戏的案例开发
- Sword finger offer II 035 Minimum time difference - quick sort plus data conversion
- Add the applet "lazycodeloading": "requiredcomponents" in taro,
猜你喜欢
MySQL script batch queries all tables containing specified field types in the database
【案例分享】网络环路检测基本功能配置
Make Jar, Not War
Dark horse notes - create immutable sets and streams
微信公众号发送模板消息
Do you understand this patch of the interface control devaxpress WinForms skin editor?
Go zero micro service practical series (IX. ultimate optimization of seckill performance)
力扣1037. 有效的回旋镖
Anfulai embedded weekly report no. 272: 2022.06.27--2022.07.03
[hfctf2020]babyupload session parsing engine
随机推荐
LLDP兼容CDP功能配置
MySQL中回表的代价
[JS] obtain the N days before and after the current time or the n months before and after the current time (hour, minute, second, year, month, day)
Fastdfs data migration operation record
Informatics Olympiad YBT 1171: factors of large integers | 1.6 13: factors of large integers
NEON优化:性能优化经验总结
The cost of returning tables in MySQL
Taro 小程序开启wxml代码压缩
Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
Analysis of mutex principle in golang
HMM notes
The MySQL database in Alibaba cloud was attacked, and finally the data was found
ARM裸板调试之JTAG原理
What are the differences between Oracle Linux and CentOS?
Rainstorm effect in levels - ue5
Atomic in golang and CAS operations
域分析工具BloodHound的使用说明
Deep learning framework TF installation
Gazebo的安装&与ROS的连接
The difference between spin and sleep