不用spring框架会怎么样(java用了spring还用设计模式吗)

这个想法不错!如果没有spring,我们正常的一个项目应该怎么搭建和开发?

不允许使用Spring框架意味着搭建的项目不允许使用SpringBoot、SpringMVC、Spring这些Spring家族的框架,既然如此ORM框架我们也不要使用,在这样的限制条件下,项目应该如何搭建?日常CRUD应该如何开发?

心动不如行动,开始搭建,先创建一个简单的maven项目no_spring_example

这个项目我们需要它具备如下的几个能力:

1、能够提供http接口访问能力;

2、能够操作MySQL数据库,支持事务,支持连接池;

3、能够操作redis;

4、可以部署在tomcat容器。

开始搭建中。。。

竟然花了我将近2个小时的时间,终于跑起来了,先看看项目整体架子:

相关包介绍:

org.example.conf

  • DruidUtil:数据源配置,采用的是阿里巴巴开源的druid;
  • MysqlBaseUtil:Mysql数据库的增、删、改、查基本操作,支持单次和批量;
  • RedisUtil:redis操作工具类,采用的是JedisPool。

org.example.dao

  • Test1Dao:这个就是对数据库里test1表的操作。

org.example.dispatcher:

  • StartupServlet:启动类Servlet,利用loda-on-startup来初始化加载WEB-INF/config目录的一些配置文件;
  • Config:即加载servlet.conf文件中的配置信息,比如MySQL连接信息、redis连接信息

org.example.filter:

  • GolbalFilter:全局过滤器,web三大组件之一;

org.example.servlet:

  • Test1AddServlet:新增数据api;

让我们把它运行到tomcat容器中,然后访问接口:http://localhost:8080/no_spring_example_war/test1/add.do

返回成功了,查看数据库表数据:

这样我们的数据库操作就通了,一个完全没有Spring相关框架参与的小架子就搭建完毕!

由于篇幅原因,涉及到redis操作、数据库事务并没有展现,感兴趣的同学可以私信我获取该项目源代码,让我们一起回忆青春~

回到问题本身,没有spring框架,对我们开发有什么影响?

结合上面这个项目来看,确实需要我们自己做的事情比较多,比如:

  1. 参数的获取、校验、序列化成对象;
  2. 数据的返回,反序列化成json;
  3. 数据库的操作需要我们手写sql;
  4. 连接池需要我们自己初始化,事务需要我们自己回滚;
  5. 只能使用Filter、Interceptor,不再有强大的AOP,这个也需要你自己去实现;
  6. 随着业务的复杂,我们需要集成其他功能,例如异步、中间件等都需要我们自己去开发;

用惯了Spring框架的我们,或许这个时候才知道它的好吧~

不过话说回来,如果真的在实际工作中不用Spring框架完成一个项目的话,你的基础能力一定会有很大的提升,包括工具类的抽取、对象的封装,基础组件的使用以及理解等,只要你是一个有追求的程序员~

框架虽好用,但是却容易蒙住我们的双眼。

最后,给你们再看一眼曾经多么熟悉的web.xml:

我从事java开发已经多年了,有幸解答你的问题!

就我的经验来看,学习JAVA不一定要学spring,你可以开发小应用,你可以做图形界面,你可以做android开发!但如果你是做服务器开发,那么spring是你必须的选择!

我JAVA从业经验中,经历了SSH,SSM,SpringMVC+M,Spring boot和Spring cloud,等等框架,核心都是Spring,都离不开spring!

spring的妙用有哪些呢?从spring设计伊始就是为了解决对象的创建和管理!后来功能愈发的完善,变成了垄断性的框架!

1,控制反转(IOC)的思想,运用依赖注入(DI)的技术,让我们管理对象的时候再也不用new new new了!防止大量对象的创建!防止组件之间的强依赖!

2,运用了大量的反射,代理,工厂方法,是我们学习编码技巧的最好模范!

3,AOP(面向切面编程)技术,能够使用少量代码搭建完美的的日志管理,权限管理,运行期监控!

4,低侵入性!让我们可以轻松耦合诸如struts,hibernate,mybatis,redis,memcache,amoeba,actibemq等包括数据层,控制层,缓存,数据中间件,消息中间件的中间件!

5,低耦合特性:通过依赖注入特性,可以借助spring容器创建,管理对象,防止在代码中硬性注入对象,防止对象混乱!

6,通过@transaction注解,可以实现声明式事务,在注解中的代码都可以在一个事务当中,实现最简单的事务控制,异常回滚!

7,spring源码使用了诸如工厂,单例,代理,构造者,策略,模板等多种设计模式,是JAVA程序员写出优良代码的不二范例!

8,提供大量诸如beanUtils,qstringUtils等优秀工具类!

…..

但是spring 4之前,用spring开发web配置过于繁杂,笨重!让程序员不用专注于业务代码开发,spring boot ,spring cloud由此诞生,将spring再次推向辉煌神坛!

spring cloud家族:

1,web开发:使用web-starter将web开发精炼到极其简单的地步,只需简单的几行代码就可以实现一个服务!

2,服务发现和治理:使用eureka-starter将服务注册到指定服务器上,对于健康,宕机的服务进行自动管理!

3,熔断器:Hystrix用于诸如遇到雪崩效应,不断大量重试等自动服务熔断!

4,网关:使用zuul实现网关路由!

5,配置集中化管理:使用config实现配置文件的统一管理和热部署!

…….

可以说spring是JAVA程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!

作为JAVA工程师,你用spring吗?

原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/9734.html

(0)
上一篇 2023-04-19 下午2:30
下一篇 2023-04-19 下午2:43

相关推荐