vieyahn2017 / javaway

java on the way
5 stars 3 forks source link

9.12 如果不用Spring,你打算怎么做开发工作? #13

Closed vieyahn2017 closed 5 years ago

vieyahn2017 commented 6 years ago

如果不用Spring,你打算怎么做开发工作?

vieyahn2017 commented 6 years ago

vertx

guice

nutz就可以,jfainal没用过不清楚ioc aop部分

Guice是轻量级的DI框架,AspectJ是AOP框架,用这些组合起来替代spring即可

vieyahn2017 commented 6 years ago

人家说Spring是指ioc 和 aop吧,一堆扯到mvc的,连OR Mapping都扯出来。mvc元老struct2被吃了?基础理论是有多薄弱。 自己管理,或找别的ioc aop框架代替,nutz就可以,jfainal没用过不清楚ioc aop部分。

vieyahn2017 commented 6 years ago

从技术上来回答很简单,不用Spring,就用它的替代品,用市面上其它的IOC/AOP工具换掉它的内核,用市面上最好的各种应用换掉Spring的应用。但从项目角度来说,选来选去,可能最后还是选出Spring的内核、Spring的各种应用,因为Spring发展的最成熟,选用它的风险最小,你敢在项目中用guice/jfinal换掉它的IOC内核? 你敢用从没听过的jTransactions(举例而已)换掉它的声明式事务? 这是Spring一家独大带来的问题,甚至它的一些应用已经傲慢地捆绑在Spring内核上,不能独立使用了。一边抱怨着Spring太臃肿、启动慢,一边又嚷着“打死不发明、不使用新轮子,安稳第一”,这就是目前现状。要解决这个问题,开源社区还是要有很长的路走,一个优质的IOC工具,一批优质的独立应用,比如说声明式事务,是必须的。 评论(0)

vieyahn2017 commented 5 years ago

刚接触的一个: https://github.com/lining90567/simplerest
用guice、resteasy、mybatis、undertow实现的轻量级restful服务

vieyahn2017 commented 5 years ago

guice

guice是实现IOC的;

resteasy

RESTEasy是JBoss的一个开源项目,提供一套完整的框架帮助开发人员构建RESTful Web Service和RESTful Java应用程序。它是JAX-RS 2.0规范的一个完整实现并通过JCP认证,通过Http协议对外提供基于Java API的 RestFul Web Service。
https://www.cnblogs.com/langtianya/p/7624647.html RESTEASY ,从学会使用到了解原理。 https://www.cnblogs.com/yjmyzz/p/replace-jackson-with-fastjson-in-resteasy.html resteasy经验谈

mybatis

数据库

undertow

Undertow 是红帽公司(RedHat)的开源产品,是 WildFly8(JBoos) 默认的 Web 服务器。

官网API给出一句话概述Undertow: Undertow is a flexible performant web server written in java, providing both blocking and non-blocking API’s based on NIO. 译文: Undertow是一个用java编写的灵活的高性能Web服务器,提供基于NIO的阻塞和非阻塞API。 https://blog.csdn.net/fayeyiwang/article/details/54729550 Java微服务框架之Undertow
https://blog.csdn.net/weixin_38187317/article/details/81532560 SpringBoot使用Undertow做服务器

vieyahn2017 commented 5 years ago

第二个例子也是 他的 https://github.com/lining90567/netty-rest-server 基于Netty实现的RESTful服务框架

vieyahn2017 commented 5 years ago

Hivemind

Hivemind和Spring的比较
https://blog.csdn.net/deadswan000/article/details/2186191?utm_source=blogxgwz9 2008年03月15日 23:52:00 deadswan000 阅读数:657 在如下方面HiveMind优于Spring:       HiveMind强制针对接口编程;       HiveMind使用module概念来分组治理service,利于并行和迭代开发;       HiveMind使用的配置文件格式更清楚简明,将接口和实现统一定义成1个service,而Spring可能要定义好几个bean元素;       在增加或移去interceptor时,HiveMind只要修改1行配置文件,而Spring至少要修改两个bean元素;

这里又发现了一个比Spring要方便的地方,interceptor可以直接定义在(我都不知道怎么说了,用Bean还是service-point?) Component的内部,用Spring的话还得另外建立一个新的Bean,然后指定Advice的作用域,如果系统中只有一两处需要的话,多一个 Bean的配置显得有点不雅。记得xWork也是这样定义interceptor的。      * 在定义interceptor时,HiveMind采用Javassist类库,性能优于Spring采用的JDK proxy。

在如下方面Spring优于HiveMind:       Spring的AOP框架较为成熟,编写interceptor的难度较低。       Spring内建和Hibernate的集成,HiveMind尚未内建该集成。      * Spring的transaction management支持各种transaction API,如JDBC、JDO、JTA等等。