Spring 到底解决的是什么类型的问题? 为什么写个 Spring 、Tomcat 、Junit 这种项目就不需要 Spring ?
1
KsAigg 2020-03-23 08:11:15 +08:00
大小通吃 ,别问,问就是。。。。
|
2
Cbdy 2020-03-23 08:27:07 +08:00
普通的项目,比如 xx 管理系统
|
3
hand515 2020-03-23 08:30:59 +08:00
大部分的 Java 项目,只要你想用 spring,都可以
|
4
chendy 2020-03-23 08:36:17 +08:00 2
文档第一句话:'Spring makes it easy to create Java enterprise applications'
重点是 application,tomcat 和 junit 都不是 application |
5
baozijun 2020-03-23 09:04:50 +08:00
大小项目 spingboot 都可以一把梭
|
6
hhhsuan 2020-03-23 09:05:46 +08:00 via Android
后端
|
7
BBCCBB 2020-03-23 09:08:32 +08:00
真都能梭.
|
8
stormynight 2020-03-23 09:11:26 +08:00
你需要了解 spring 有什么用,然后按需取用
|
9
Tinyang 2020-03-23 09:16:40 +08:00
Spring 主要是实现了一系列的 Java ee 规范,理论上如果你的项目需要用到一些 Java ee 的功能都可以使用 Spring 。原先在 Spring 没出现的时,这些 Java ee 功能主要由一些企业级容器(weblogic...)来实现
|
10
rockyou12 2020-03-23 09:18:23 +08:00
核心的 ioc 和 aop 两大功能哪里都能用……
|
11
passerbytiny 2020-03-23 09:27:37 +08:00 1
JDK 8 / Java SE / Java ME / Java EE(Jakarta EE):核心 / 底层 / 基础 。
Spring / Tomcat / Junit / Storm / Hbase:系统级应用程序 / 工具 Application based on Spring or Jakarta EE:业务级应用程序。 至于为什么不用 Spring 写 Spring,原因很简单,Java 本身就不是自述语言。 |
12
inwar 2020-03-23 09:52:50 +08:00 via Android
spring 是 aop ioc 的一个实现,用的到就上,crud 业务开发尤其是,效率高,解耦好
大部分底层框架都不会依赖其它重量级的框架,除了 spring 系外 Java 不也只有 web😉 |
13
ARhen 2020-03-23 10:59:25 +08:00
想了想 离开 spring 我可能写不了 java 项目😂
|
14
Jooooooooo 2020-03-23 11:03:39 +08:00
spring 就是 aop, 有这个需求就都可以, 人家把架搭好了自己写起来也方便
|
15
licoycn 2020-03-23 11:07:50 +08:00
ioc
|
16
JasonLiHai 2020-03-23 11:21:08 +08:00
灵魂少不了
|
18
wozhizui 2020-03-23 11:47:29 +08:00
@xixinjiejie 问就是一把梭呗!
|
19
jaylee4869 2020-03-23 12:02:51 +08:00
Spring 解决的问题核心是依赖注入和控制反转。
|
20
mawerss1 2020-03-23 12:08:03 +08:00
我的理解是类比较多的情况下,比如你要写一堆单例模式的类,就可以用依赖注入来快速开发,
|
22
aguesuka 2020-03-23 12:35:32 +08:00 via Android
如果存在很多对象都只要 new 一次,或者每次 new 的参数都是固定的,那就适合 spring 。否则不适合。
|
23
araaaa 2020-03-23 12:56:18 +08:00 via iPhone
解决了码农不会写代码的问题
|
24
cwjokaka 2020-03-23 12:57:19 +08:00
大项目至少需要 spring 依赖注入的功能
|
25
kilen3a 2020-03-23 13:46:20 +08:00
当你想用框架但是有没有找到特别合适的时候
|
26
gnemux 2020-03-23 13:47:06 +08:00 1
盖房子需要用到『建筑工具』比如『电锯和搅拌机』,原则上只用『铁锤和小铲子』等也是能盖房子的,只不过从 0 开始太没效率了,打造建筑工具就是为了盖房子更快用的。
为什么造『电锯和搅拌机』的时候不用『电锯和搅拌机』? 因为建筑工具是用来盖房子的,要打造建筑工具的话,需要用更轻量的工具,比如『铁锤和小铲子』。 |
27
BruceTu 2020-03-23 14:27:47 +08:00
all in spring
|
28
hantsy 2020-03-23 15:05:20 +08:00 4
用不用 Spring 开发对于我来讲都差不多,实际 Java EE 规范本身一直也在发展,对于一些说用 Spring 开发效率高的说法,我不认同。对于熟悉 Java EE 规范的人,用纯粹的 Java EE 规范和 Spring 没太大差别,我要说的是 Spring 本身离不开 Java EE 规范,并且 Spring 集成很多规范(比如 JSR330,JSR303 等),Spring 也可以调用 EJB 等。
j2ee/Java EE/Jakarta EE 规范以前最大的痛点是 EJB 2 太难用,这也是 Spring 作者抨击 J2EE 的重点,Spring 的原型就是他那本书 J2EE Development without EJB 的源代码上发展起来的。 但是 2006 年 Java EE 5 的发布,带来全新的 EJB 3 编程模型和新的 JPA1.0 规范。这时候 Spring 优势已经不大如以前了。要知道,EJB 生来具有分布事务是 Spring 的硬伤,现在 Spring 的一些方案都是把事务操作 Delegates 到第三方库上,和 Java EE 容器内管理事务完全没法比。 Java EE 5 后的很长一段时间我一直在用 JBoss Seam 写程序,对于 [ [写企业应用] ] ,全部使用 Stateful Bean,JavaEE 优势太明显。当时很多技术讨论在围绕 [ [有状态] ] 的应用还是 [ [无状态] ] 的应用好。面对 JBoss Seam 等有状态的框架的压力,Spring 开始自身也作了调整,Scope 更加丰富了,不再单纯的 Singleton 和 Prototype 。另外 Spring 宣布 JSF 为 Spring WebFlow 下一等公民,地位超过自己的 Spring MVC 。 09 年 Java EE 6 发布,带来 CDI,大部分 Seam 的概念都体现在 CDI 中。但是 Oracle 收购 SUN,Java EE 开始乏力,Java EE 8 可能是个有史以来最失败的例子,发布时间拖了 4,5 年,大部分初期的 Proposals 都被否决,停滞了 2 年后,草草的就发布了,相当一个 Java EE 7 更新吧。在 Oracle 停滞的那两年,Redhat,IBM 等把初期那些好的 Proposals 拾起来,成立了新的 Microprofile 规范。 好消息是,Java EE 8 后规范领导权移交给了 Eclipse 基金会,完全由社区领导。Jakarta EE (由于 Java 版权问题,Java EE 改名了) 和 Microprofile 开始联手下一代规范。目前 Microprofile 规范发展很快,很多新的东西很快就吸收了,比如 reactive streams,OpenAPI,GraphQL 等。 Spring Boot 作为一个 Glue 层,很多时候是蹭了 Microservice,Cloud Native,12Factor Application 的热度,另外不得不说的是 Spring Boot 1.x 大量的借鉴了 Dropwizard,甚至 Include 了一些 Dropwizard 的成果。的确用 Spring Boot 开发,让傻子程序员都能够上手,一旦出现什么要改内部机制,配置的问题,一些人就开始傻眼了。不管你觉得 Spring 怎么方便,你必须懂 Java EE/Jakarta EE 规范。 |
29
knives 2020-03-23 15:06:36 +08:00
对标 Spring 的话,个人目前用的是 Guice 。具体到 Web 项目使用的是 Dropwizard + Guice 这种冷门组合,原因是实在不爽 SpringMVC 的注解风格……
|
30
hantsy 2020-03-23 15:15:52 +08:00
IOC, AOP 这些也不是 Spring 特有的,Spring 出来同期有很多类似的 IOC 框架。Java EE 规范中,JAXRS,JSF,EJB 都有自己的 IOC 容器。现在 CDI 只是一个专有的 IOC,DI 规范,未来考虑规范互用问题,JAXRS,JSF 都会放弃自己的 IOC 容器,转而使用 CDI,EJB 规范慢慢会被弱化,拆分出来(比如 Timer/Schedule, Transaction, MessageBean )。
|
32
hunk 2020-03-23 15:19:10 +08:00
spring boot 几乎通吃一切吧。
api 接口,没问题,测试方便,web 页面,可选的也多。 主要是 JPA 这货,实现统一。 nodejs 世界,一会一个框架,得重新学,虽然大差不差,但终归有所不同,得适应。java 搞的是大一统,习惯了入门了,也就踏实了。 我在 py 和 node 中间游荡了好久,疫情期间才开始学 spring,感觉好用。 |
33
luckyrayyy 2020-03-23 15:28:09 +08:00
拿楼上的类比,Spring 就是电锯和搅拌机啊,你问电锯和搅拌机能用来建造哪些房子。那答案就是几乎所有房子,除非你限定条件要造小木屋,可能用不到搅拌机。
|
34
hantsy 2020-03-23 15:28:10 +08:00
@knives Spring 5.0 可以完全不用 MVC 那一套。
新的 RouteFunction 已经成熟了,支持 Servlet 和 WebFlux 。如果用 Kotlin DSL 的话,基本可以按自己的想法去 Wire Bean 。 |
35
JerryCha 2020-03-23 16:05:57 +08:00
Hello World
|
36
SaltedFish12138 2020-03-23 16:51:01 +08:00
个人看法,Spring 就是一系列解决方案(不止是 web 开发),而不是只解决一个问题的,所以,理论上只要是你要搞 Java/Kotlin, 都应该有对应的 Spring 解决方案。
最近没有研究 Java 的图形界面开发, 应该是用不到 Spring 的,如有错误,欢迎打醒。 |
37
hantsy 2020-03-23 19:26:33 +08:00
@SaltedFish12138 如果只用 IOC,一样可以将 Spring 用在 Android,Swing,JavaFX 上,Spring 官方以前还有一个 Android 项目,现在好像没维护了。
|
38
mejee 2020-03-23 20:31:13 +08:00
any
|
39
securityCoding 2020-03-23 21:10:54 +08:00
久经考验的工业框架...你值得拥有
|
40
mreasonyang 2020-03-23 21:41:14 +08:00
只要不是底层公用组件,都建议用 Spring,后人上手也快
|
41
nutting 2020-03-23 21:50:34 +08:00
最基本的对象之间的依赖关系管理。另外就是各种领域得集成,web,db 什么的都提供封装了。
|
42
kassadin 2020-03-23 22:23:35 +08:00
你看其他帖子和这个帖子的回复量,有坑不用自己趟
|
43
hq136234303 2020-03-24 00:17:21 +08:00
spring 简单的来说就是把一些开发简单化 。
|
44
gaigechunfeng 2020-03-24 10:58:16 +08:00
把梭,别问
|