Spring是Java生态中最流行的企业级框架,它为企业应用提供了全面的解决方案。
本文介绍了Spring框架的核心特性和使用方式,帮助你快速上手企业级开发。
第一部分:重构方法论
核心理念:重构不是推倒重来
重构和重写是两件事。重写是说"原来的代码不行,我重新写一遍";重构是说"原来的代码能工作,但结构不好,我改善它"。
大多数团队把重构搞成了重写,结果花三个月重写,再花三个月修bug,最后发现新系统的问题和旧系统一样多——只是换了种形式。
2026/6/11大约 13 分钟
Spring是Java生态中最流行的企业级框架,它为企业应用提供了全面的解决方案。
本文介绍了Spring框架的核心特性和使用方式,帮助你快速上手企业级开发。
重构和重写是两件事。重写是说"原来的代码不行,我重新写一遍";重构是说"原来的代码能工作,但结构不好,我改善它"。
大多数团队把重构搞成了重写,结果花三个月重写,再花三个月修bug,最后发现新系统的问题和旧系统一样多——只是换了种形式。
springboot打jar包分离资源文件是一个重要的技术主题,它在现代软件开发中扮演着关键角色。
本文系统介绍了springboot打jar包分离资源文件的核心概念和实践经验,帮助你深入理解这一技术领域。
<build>
<!-- jar包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 分离lib -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 依赖包输出目录,将来不打进jar包里 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- copy资源文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<outputDirectory>${project.build.directory}/resources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 打jar包时忽略配置文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludes>
<exclude>**/*.yml</exclude>
<exclude>**/*.xml</exclude>
</excludes>
</configuration>
</plugin>
<!-- spring boot repackage -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.0</version>
<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- maven 打包时跳过测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
kafka架构设计是分布式系统中的核心话题,它涉及数据一致性、可用性和分区容错等关键挑战。
本文深入分析了kafka架构设计的原理和解决方案,帮助你构建可靠的分布式系统。
同时为发布和订阅提供高吞吐量、消息持久化、分布式功能、支持数据并行加载到Hadoop中
实际:
1、发布系统通知:如评论、点赞、关注这些事件发生后,可以把这些操作放入到kafka消息队列中,如果用户量一大直接操作数据库,服务器压力顶不住。所以把这些通知先存入kafka中,然后一个个消费掉。
2、一些项目数据同步问题也可以用到。
3、监测数据:分布式应用程序生成的统计数据集中聚合。
4、分布式:假设有系统B、C、D都需要系统A的数据
5、事件采集:其中状态的变化根据时间的顺序记录下来,kafka支持这种非常大的存储日志数据的场景。
如:日志收集、消息系统、活动追踪、运营指标、流式处理、热点点赞、评论、关注、发短信。