当前位置:网站首页>Make Jar, Not War
Make Jar, Not War
2022-07-05 20:33:00 【Small box】
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
边栏推荐
猜你喜欢
实操演示:产研团队如何高效构建需求工作流?
Pytorch 1.12 was released, officially supporting Apple M1 chip GPU acceleration and repairing many bugs
计算lnx的一种方式
.Net分布式事務及落地解决方案
Unity editor extended UI control
PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug
2022北京眼睛健康用品展,护眼产品展,中国眼博会11月举办
CTF reverse Foundation
CTF逆向基础
全国爱眼教育大会,2022第四届北京国际青少年眼健康产业展会
随机推荐
Ffplay document [easy to understand]
Applet event binding
Minimum commission for stock trading account opening, where to open an account with low commission? Is it safe to open an account on your mobile phone
物联网智能家居基本方法实现之经典
小程序页面导航
实操演示:产研团队如何高效构建需求工作流?
Relationship between mongodb documents
Leetcode brush questions: binary tree 11 (balanced binary tree)
1、强化学习基础知识点
[C language] three implementations of quick sorting and optimization details
基础篇——配置文件解析
.Net分布式事务及落地解决方案
Scala basics [HelloWorld code parsing, variables and identifiers]
sun. misc. Base64encoder error reporting solution [easy to understand]
Zero cloud new UI design
When JS method passes long type ID value, precision loss will occur
Rainbond 5.7.1 支持对接多家公有云和集群异常报警
CCPC 2021 Weihai - G. shinyruo and KFC (combination number, tips)
sort和投影
Leetcode (347) - top k high frequency elements