1-1:Java行业目前主流框架分析

java主流框架 阅读详情

1-1:Java行业目前主流框架

Java行业目前主流框架:

2015年:Struts + Spring + Hibernate 【SSH】
2015~2018年之间:SpringMVC + Spring + Mybatis 【SSM】
2018年到现在:SpringBoot + Spring + Mybatis 【新版SSM】
微服务架构:SpringCloud / Alibaba Cloud
无服务架构
服务网格

很多时候,网上的学习资源经常会说SSM,这个时候一定要看清楚是新版SSM还是旧版SSM。在找工作的时候,推荐找新版SSM及微服务架构的企业,这样才是Java技术的前沿,不至于被时代所抛弃。

JavaWeb是使用java开发网站的相关技术,比如servlet、JDBC、Tomcat、Session/Coookie等技术栈。JavaWeb中有很多技术,其中有的部分慢慢被弃用了,比如JSP技术,在今天学习的价值并不高,我也不会记录像JSP这样的学习笔记。

学习JavaWeb的需要什么:

  • 前端基础:HTML + CSS + JS
  • 数据库基础:MySQL
Java主流框架全解析:从企业级开发到云原生 Java作为一门历史悠久且应用广泛的编程语言,其强大的生态系统离不开各种优秀的框架支持。无论是传统的企业级应用开发,还是现代的微服务、云原生架构,Java都提供了丰富的框架选择。本文将全面解析当前主流的Java框架,涵盖Web开发、微服务、数据持久化、响应式编程、测试、安全等多个领域,帮助开发者根据项目需求选择合适的工具。 阅读详情

相关推荐

Java与事件流处理框架的融合:4大主流框架对比+3种集成模式,如何实现百万级吞吐量?

🔥关注墨瑾轩,带你探索编程的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手🚀🔥技术宝库已备好,就等你来挖掘🚀🔥订阅墨瑾轩,智趣学习不孤单🚀🔥即刻启航,编程之旅更有趣🚀在Java生态中,(Event Streaming Framework)正掀起一场“架构革命”。

java专栏 1909

十大常用框架

十大常用框架

Shipley_Leo的博客 9943

Java主流框架的历史演进与现代应用

Java主流框架经过多年的发展,为Java开发人员提供了丰富的工具和技术支持。在选择框架时,开发人员应根据项目需求和团队技术栈权衡各框架的优缺点,以确保项目的顺利进行。

曹昆的技术博客 1655

全面解析当前主流 Java 框架:从核心功能到实战应用

在 Java 开发领域,主流框架如同精密的工具集,各自解决不同场景的技术难题。Spring Boot 以自动配置为核心,大幅降低微服务开发门槛,让开发者专注业务逻辑;MyBatis 通过灵活的 SQL 映射,在复杂查询场景中展现强大控制力;Spring Cloud 则像乐高积木,将服务注册、网关路由等组件有机整合,构建分布式系统骨架。这些框架并非独立存在,而是通过生态协作形成合力 —— 例如 Spring Boot 与 Spring Cloud 无缝衔接,MyBatis 可与 Spring Data JPA

2501_91606508的博客 3108

【SLAM】探索explore_lite在移动机器人自主建图中的高效边界检测策略

本文深入解析了explore_lite在移动机器人自主建图中的应用,重点探讨了其高效的贪婪边界检测策略。该工具包专为资源受限平台设计,通过直接利用SLAM生成的地图信息,以极低的计算开销实现快速、稳定的未知区域探索,并与move_base导航框架无缝协作,是轻量级机器人自主探索的优选方案。

purple的博客 1066

2026年7月19日 从可插拔到共封装:技术路线研究报告

AI 算力的爆发正在重写数据中心光互连的技术路线。本报告对当前并存的四代光互连架构——

weixin_51184047的博客 584

web前端三大主流框架

web前端三大主流框架, 把博主使用过的前端框架的都列出来,分享给大家!

勤快的小蚂蚁的博客 4万+

智能车实战——极速越野组GPS与惯导融合定位导航全解析

本文深入解析了智能车极速越野组中GPS与惯导模块的融合定位导航技术。通过对比GPS的全局定位与惯导的高频姿态感知,详细阐述了如何利用MM32SPN27主控,将两者数据融合以实现精准、实时的车辆控制。内容涵盖硬件选型、软件数据处理、PID控制及系统调试等实战环节,为智能车开发者提供了一套完整的解决方案。

pz8901234的博客 1203

Spring学习

Spring优势:所有资源有Spring同意调度,统一管理,使对象的控制更加集中,避免应用程序中出现多余的对象(每次都new),避免浪费资源.特点:1.方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

486

先进封装技术的一些优缺点探讨

半导体封装技术是半导体制造过程中的关键环节,它不仅保护了芯片免受物理损伤,还提供了电气连接和散热功能。随着技术的发展,出现了多种先进的封装技术,每种技术都有其特定的应用场景和优缺点。

阿拉伯梳子的专栏 2168

基于ESP32的无线DMX节点设计:从Art-Net/sACN到DMX512的协议转换与实现

在舞台灯光和建筑照明控制系统中,DMX512是行业标准的数字调光协议,用于控制灯具的亮度、颜色和效果。其原理是通过RS-485差分信号串行传输512个通道的数据,每个通道对应一个控制值。然而,传统有线DMX布线复杂、成本高,在移动装置、历史建筑或临时活动中部署困难。为解决此问题,业界发展出了基于以太网的灯光控制协议,如Art-Net和sACN(E1.31),它们将DMX数据封装在UDP包中,通过网络传输。这项技术的核心价值在于实现了灯光控制的网络化与无线化,大幅提升了系统的灵活性和部署效率。其典型应用场景包

weixin_30175731的博客 227

Java进阶-主流框架总结与详解

本文详细介绍了Java的主流框架,包括Spring、Hibernate、Spring Boot等。通过对每个框架的功能、特点以及在实际开发中的应用进行分析和比较,读者可以更好地了解各框架的适用场景和优劣势。同时,本文还强调了Java框架在提升开发效率、简化开发流程和提高代码质量方面的重要性。对于Java开发者来说,选择合适的框架对项目的成功至关重要,因此本文的内容对他们具有很高的参考价值。

踏雨歌青春,诗酒趁年华 1万+

基于 FPGA Vivado 示波器设计(附源工程)

今天给大侠带来基于 FPGA Vivado 示波器设计,开发板实现使用的是Digilent basys 3,如有想要入手basys3开发板的,可以联系牛总:18511371833。话不多说,上货。 本篇掌握基于添加文件和IP的Vivado工程设计流程,掌握基于Tcl的Vivado工程设计流程,学习示波器的基本组成结构。获取本篇相关源工程代码,可在公众号内回复“示波器设计源工程”。 原理介绍 数字存储示波器能够将模拟信号进行采样、存储以及显示。本系统在DIGILENT ...

7385

Java Web目前主流的框架以及正在兴起的框架

Java Web目前主流的框架以及正在兴起的框架收集我收集了当前主流的以及正在兴起的JavaWeb框架,以及对框架整合做了简单介绍。

kingscoming的博客 9万+

PyQt5自动化测试,让测试更加便利

PyQt5是一个Python的GUI编程工具包,帮助开发者可以更加简单、快捷地创建图形界面和处理用户输入。在PyQt5中有两种常见的测试方式:手动测试和自动化测试。手动测试需要通过点击、输入等交互操作进行测试,自动化测试则是通过程序模拟鼠标、键盘等操作进行测试。这段代码创建了一个简单的窗口,其中包含一个按钮。这段代码打开一个本地HTML文件,点击页面上的按钮并检查输出是否为“Button clicked”。以上就是在PyQt5中进行自动化测试的简单示例。使用PyQt5可以大大简化测试过程,提高测试效率。

PixelCoder的博客 710

如何在 Windows 中实时打开字幕

在 Windows 操作系统中,你可以使用编程来实现实时字幕功能,以便在屏幕上显示即时的文字内容。下面是一个示例代码,展示了如何使用Python编程语言在Windows上实现实时字幕功能。这样,字幕窗口将会不断地显示系统当前时间作为字幕。你可以根据自己的需求修改主循环中的内容,以显示你想要的实时字幕。希望以上代码和说明能够帮助你在Windows中实现实时字幕功能。函数创建了一个顶级窗口,并设置窗口的样式、位置和大小。方法,用于在字幕窗口中显示指定的字幕内容。上述代码中,我们使用了Python的。

DevWizard的博客 3270

最详细、最全面的【Java日志框架】介绍,建议收藏,包含JUL、log4j、logback、log4j2等所有主流框架

本文为 【Java日志框架】 相关知识,对日志的概念与作用,JUL日志框架,Log4j日志框架,Logback日志框架,Log4j2日志框架,日志门面如Slf4j日志门面、JCL日志门面等进行详尽介绍~

小新要变强的博客 3918

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java开发主流框架搭配详解及学习路线指南

ava作为一门经久不衰的编程语言,在企业级应用开发中始终占据着重要地位。随着技术的不断发展,Java生态系统也日趋丰富,各种框架层出不穷。本文将详细介绍当前Java开发中最主流的框架搭配,分析各技术栈的优缺点,并为初学者提供一条清晰的Java学习路线。

李赛赛的专栏 1855

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

.NET开发主流框架全方位对比分析

.NET主流框架概览 ASP.NET Core是高性能跨平台Web框架,支持Razor Pages和MVC模式,适合现代Web开发。.NET MAUI取代Xamarin,用于构建跨平台原生应用,支持单一代码库多平台部署。Blazor允许使用C#开发交互式Web UI,提供服务器和WebAssembly两种托管模式。WPF仍是构建Windows桌面应用的首选,具备丰富的UI定制能力。Entity Framework Core作为主流ORM,简化数据访问并支持多种数据库。SignalR专为实时Web功能设计,自

百锦再的博客 4325

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java目前主流框架_java的三大主流框架介绍

《java的三大主流框架介绍》由会员分享,可在线阅读,更多相关《java的三大主流框架介绍(2页珍藏版)》请在装配图网上搜索。1、java的三大主流框架介绍java的三大主流框架介绍Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的一、SpringSpring是一个解决了许多在J2...

weixin_29092787的博客 7826

主流的Java生态下权限管理框架

此方案为当前互联网Java开发生态的。(整体权限管理框架) +(细粒度数据权限控制)

print_helloword的博客 2440

Java目前主流框架

成熟的框架介绍 Hibernate 框架 Hibernate 是一种ORM框架,全称为 Object-Relative Database-Mapping,在Java对象与关系型数据库之间建立某种映射,以实现直接存取Java对象(POJO)。ORM框架是一种不同与MVC的另一种思想框架,适用范围也与MVC截然不同。 使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语...

qq_40893331的博客 5946

《java主流的爬虫框架》

大家都知道,谈到爬虫技术,我们脑子里的第一反应肯定是python爬虫技术,但是需要注意的是,Java也同样可以实现爬虫,这篇文章就为大家介绍一下Java的主流的爬虫技术

一名资深Java工程师的技术分享 3158

java后端主流框架_好程序员Java教程分享Java开发主流框架

  好程序员Java教程分享Java开发主流框架:企业主流框架用什么,也不能一概而论。需要有所划分,市场需求可以分为两种。其一是传统企业开发。其二是互联网企业开发。常用技术有:struts1/2,Spring/mvc/boot/cloud,Hibernate/MyBatis。在此论述的是JavaEE,JavaME另有他论。技术核心原理、理论知识、优点缺点、功能作用等就不再展开描述。一、传统企业开发...

weixin_39710361的博客 247

Java 日志演进:一文读懂主流框架

本文主要向大家介绍下Java开发中一个很熟悉的伙伴--日志。日志究竟是怎么延申发展起来的呢,它又为我们的日常开发究竟带来了多少便利?下面我将通过日志发展历程顺序来逐一讲解这些日志的使用方式 ദ്ദി˶ー̀֊ー́ )✧💡假设你开发了一个简单的用户注册功能,并且在代码中通过硬编码打印了一些基础的语句信息。这时用户反馈 “注册失败”,你去看控制台,只显示 “保存失败”,但不知道是数据库连接超时?还是手机号重复?完全无法定位问题。于是聪明的你就想到了用。

m0_74977981的博客 1120

2025年Java主流开发框架及项目选型指南

Java项目的技术框架选型需综合考虑性能、开发效率、云原生适配性、生态成熟度及团队技术栈匹配度。从前端、后端、数据库、持久层四大维度,详细对比Java主流框架的核心特性、优缺点及适用场景,帮助开发者根据具体需求做出最优决策。

yinzheshijie的专栏 9503
上一篇: Macbook解决MySQL不能使用groupby分组查询
下一篇: 1-2:动态网页和静态网页的区别-以及技术栈
崔凯洋
博客等级 码龄6年 26粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值