当前位置: 首页 > news >正文

公司网站设计怎么做天津公共资源交易平台官网

公司网站设计怎么做,天津公共资源交易平台官网,微信怎么建小程序,上海企乐网站制作公司Spring Boot 4和Spring Framework 7带来基础要求升级、模块化改进、API版本化、声明式HTTP客户端、弹性注解等重大特性#xff0c;标志着Java开发生态向云原生时代的深度进化。 近日#xff0c;Spring生态迎来了自2022年以来最具里程碑意义的更新——Spring Boot 4和Spring …Spring Boot 4和Spring Framework 7带来基础要求升级、模块化改进、API版本化、声明式HTTP客户端、弹性注解等重大特性标志着Java开发生态向云原生时代的深度进化。 近日Spring生态迎来了自2022年以来最具里程碑意义的更新——Spring Boot 4和Spring Framework 7的正式发布。这两个版本延续了Spring团队的现代化征程不仅采纳了最新的Java语言特性还与Jakarta EE 11实现了更紧密的整合同时显著提升了开发效率并为应用提供了更强的弹性支持。本文将深入解析这两个版本的核心特性帮助开发者全面把握这次升级带来的变革。 基础要求全面升级 Spring Boot 4和Spring Framework 7在基础要求上有了显著提升。虽然Java 17仍然是最低要求但官方强烈推荐使用Java 21或Java 25以充分利用虚拟线程等新JVM特性。Spring Framework 7全面采用了Jakarta EE 11标准这意味着开发者将使用Servlet 6.1、JPA 3.2和Bean Validation 3.1等最新规范。对于Kotlin开发者新版本支持Kotlin 2.2及以上版本提供了更流畅的协程集成和响应式代码编写体验。 Spring Boot 4的重大改进 作为第四个主要版本Spring Boot 4在性能、可观察性、可维护性和配置支持方面都有显著增强。 在本地镜像方面Spring Boot 4与GraalVM 24完全对齐提前处理技术得到增强这意味着更快的构建时间和更少的启动内存占用。Spring Data引入了AOT存储库将查询方法转换为与应用程序一起编译的源代码。 可观察性方面Spring Boot 4升级到Micrometer 2并集成了OpenTelemetry starter使追踪、日志和指标能够无缝协作。SSL健康报告也得到了改进证书链中即将过期的证书现在会在新的expiringChains条目中显示不再使用WILL_EXPIRE_SOON状态而是将即将过期的证书报告为VALID这使得团队在生产环境中监控SSL证书有效性变得更加容易。 模块化是Spring Boot 4的另一个重要改进。新版本将自动配置和支持代码拆分为更小、更专注的模块这意味着更快的构建和本地镜像生成更清晰的依赖管理以及为Spring团队和贡献者提供了更好的可维护性。 对于使用starter依赖的开发者不需要任何更改。例如当需要JPA与Hibernate时只需在pom.xml中添加以下依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId /dependency区别在于底层实现JPA自动配置、Hibernate集成和验证设置现在位于单独的模块中这使得框架在运行时或AOT编译期间处理配置时能够更有选择性。 新增的ConfigurationPropertiesSource注解为更好的模块化提供了支持。这个注解在构建时为spring-boot-configuration-processor提供提示确保即使在跨模块工作时也能生成完整的元数据。 Spring Framework 7的创新特性 Spring Framework 7带来了许多期待已久的功能和精心设计的改进涵盖了测试、API设计和核心基础设施等方面。 测试方面引入了测试上下文暂停功能。之前长期运行的集成测试即使在空闲时也会消耗资源。现在Spring可以暂停和恢复存储在上下文缓存中的上下文从而在大型测试套件中节省内存并加快测试执行速度。新的RestTestClient使得测试REST端点变得更加简单类似于WebTestClient但不需要引入响应式基础设施。 以下是一个使用RestTestClient的示例 SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT) class HelloWorldApiIntegrationTest {RestTestClient client;BeforeEachvoid setUp(WebApplicationContext context) {client RestTestClient.bindToApplicationContext(context).build();}Testvoid shouldFetchHelloV1() {client.get().uri(/api/v1/hello).exchange().expectStatus().isOk().expectHeader().contentTypeCompatibleWith(MediaType.TEXT_PLAIN).expectBody(String.class).consumeWith(message - assertThat(message.getResponseBody()).containsIgnoringCase(hello));} }API版本化是其中一个最受期待的新功能。传统上开发者必须通过URL路径约定、自定义头或媒体类型来实现自己的解决方案。现在框架提供了原生支持开发者可以在控制器或方法级别指定版本属性 RestController RequestMapping(/hello) public class HelloWorldController {GetMapping(version 1, produces MediaType.TEXT_PLAIN_VALUE)public String sayHelloV1() {return Hello World;}GetMapping(version 2, produces MediaType.TEXT_PLAIN_VALUE)public String sayHelloV2() {return Hi World;} }也可以在控制器级别指定版本 RestController RequestMapping(path /hello, version 3) public class HelloWorldV3Controller {GetMapping(produces MediaType.TEXT_PLAIN_VALUE)public String sayHello() {return Hey World;} }然后需要配置映射策略可以是基于路径的映射、基于查询参数的映射、基于请求头的映射或基于媒体类型头的映射。以下配置使用基于路径的映射 Configuration public class ApiConfig implements WebMvcConfigurer {Overridepublic void configureApiVersioning(ApiVersionConfigurer configurer) {configurer.usePathSegment(1);}Overridepublic void configurePathMatch(PathMatchConfigurer configurer) {configurer.addPathPrefix(/api/v{version}, HandlerTypePredicate.forAnnotation(RestController.class));} }声明式HTTP客户端支持是另一个值得注意的特性。受Feign启发但更轻量且完全集成新的HttpServiceClient注解使得创建HTTP客户端变得更加简单 HttpServiceClient(christmasJoy) public interface ChristmasJoyClient {GetExchange(/greetings?random)String getRandomGreeting(); }然后需要激活类路径扫描并配置客户端分配到的服务组 Configuration Import(HttpClientConfig.HelloWorldClientHttpServiceRegistrar.class) public class HttpClientConfig {static class HelloWorldClientHttpServiceRegistrar extends AbstractClientHttpServiceRegistrar {Overrideprotected void registerHttpServices(GroupRegistry registry, AnnotationMetadata metadata) {findAndRegisterHttpServiceClients(registry, List.of(com.baeldung.spring.mvc));}}BeanRestClientHttpServiceGroupConfigurer christmasJoyServiceGroupConfigurer() String baseUrl) {return groups - {groups.filterByName(christmasJoy).forEachClient((group, clientBuilder) - {clientBuilder.baseUrl(https://christmasjoy.dev/api);});};} }ChristmasJoyClient然后可以像往常一样注入到其他Spring组件中 RestController RequestMapping(path /hello, version 4) RequiredArgsConstructor public class HelloWorldV4Controller {private final ChristmasJoyClient christmasJoy;GetMapping(produces MediaType.TEXT_PLAIN_VALUE)public String sayHello() {return this.christmasJoy.getRandomGreeting();} }弹性注解现在内置在框架中。开发者可以用Spring注解来装饰Spring组件方法直接添加重试逻辑或并发限制 HttpServiceClient(christmasJoy) public interface ChristmasJoyClient {GetExchange(/greetings?random)Retryable(maxAttempts 3, delay 100, multiplier 2, maxDelay 1000)ConcurrencyLimit(3)String getRandomGreeting(); }这些注解默认被忽略除非在配置中添加EnableResilientMethods。 多个TaskDecorator bean的支持消除了手动组合装饰器的需要。例如当有异步事件监听器时 Component Slf4j public class HelloWorldEventLogger {AsyncEventListenervoid logHelloWorldEvent(HelloWorldEvent event) {log.info(Hello World Event: {}, event.message());} }可以简单注册两个TaskDecorator bean Configuration Slf4j public class TaskDecoratorConfiguration {BeanOrder(2)TaskDecorator loggingTaskConfigurator() {return runnable - () - {log.info(Running Task: {}, runnable);try {runnable.run();} finally {log.info(Finished Task: {}, runnable);}};}BeanOrder(1)TaskDecorator measuringTaskConfigurator() {return runnable - () - {final var ts1 System.currentTimeMillis();try {runnable.run();} finally {final var ts2 System.currentTimeMillis();log.info(Finished within {}ms (Task: {}), ts2 - ts1, runnable);}};} }空安全方面采用了JSpecify作为标准 Configuration public class ApiConfig implements WebMvcConfigurer {Overridepublic void configureApiVersioning(NonNull ApiVersionConfigurer configurer) {configurer.usePathSegment(1);} }弃用和移除的功能 随着现代化进程一些旧功能被清理javax.*包被完全移除只支持Jakarta EE 11放弃了对Jackson 2.x的支持Spring 7期望使用Jackson 3.x移除了Spring JCL日志桥接转而采用Apache Commons Logging弃用了JUnit 4支持建议 exclusively 使用JUnit 5。如果仍然依赖这些较旧的API迁移应该成为升级计划的一部分。 这些更新使得应用程序更容易演进和强化通过JSpecify空安全和Kotlin支持减少运行时错误声明式HTTP客户端简化了服务间调用本地镜像支持和可观察性工具提高了云就绪程度。虽然重大升级总是需要投入测试工作但在生产力、性能和可维护性方面的收益使得过渡是值得的。 https://www.jdon.com/81616-SpringBoot4-Spring7.html
http://www.pierceye.com/news/257844/

相关文章:

  • 网站系统建设技术服务费网站建设 专项资金变更
  • 网站建设画册怎么用eclipse做网页
  • 百度网站安全检测平台广州番禺营销型网站建设
  • 杭州大的做网站的公司甘肃省住房和城乡建设部网站首页
  • 网站建设与网页设计考试题棋牌软件开发搭建
  • 短链接生成网址wordpress主叶SEO优化
  • 免费的cms视频网站做cpa怎么建立自己网站
  • 在哪里找做网站的北京的招聘网站有哪些
  • 做旅行网站aspx网站开发
  • 网站接入服务器商查询wordpress更换端口
  • 网站网页设计师武义县网站建设
  • 中铁建设集团有限公司官网建站到网站收录到优化
  • 做seo网站要多少钱网页设计师好吗
  • 建设部网站 绿色建筑评价表哪里页面设计培训好
  • 西部数码网站源码虹桥做网站公司
  • 生鲜网站开发wordpress mysql 链接
  • 做网站是怎么挣钱的网站建设福永附近网络公司
  • 关于网站制作的评价.net网站制作综合实训报告
  • 合肥专业制作网站科技创新绘画作品图片
  • 站内推广的主要目的是商业空间设计心得体会
  • 网站建设丨金手指15phpcms建设网站
  • 怎么网上推广自己的产品郑州seo优化外包顾问阿亮
  • 灵台门户网站建设网站开发费用会计分录
  • wordpress替换公共js北京seo推广服务
  • 公司付的网站费怎么做分录黑色网站配色
  • 体育门户网站源码峰峰做网站
  • 山西网站建设多少钱电商网站建设需要
  • 海西电子商务网站建设wordpress 主题宽度
  • 网站建设首选公司wordpress需要mysql
  • 织梦 旅游网站模板深圳公司招牌制作