spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

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

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

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

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

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

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

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

3、能够操作redis;

4、可以部署在tomcat容器。

开始搭建中。。。

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

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

相关包介绍:

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框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

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

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

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

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

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

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

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

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

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

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

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

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

Java需要学习什么框架?

spring框架

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

spring MVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。

应 用:分离了控制器、模型对象

特 点:易于同其它View框架无缝集成

MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射
  • 提供对象关系映射标签,支持对象关系组建维护
  • 提供xml标签,支持编写动态sql。

Struts 2

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

JPA

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

Maven

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

SVN

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

优 势:速度快、安全性高等

shiro(java安全框架)

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

Web Service

Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。

Redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Quartz

Quartz是一个完全由java编写的开源作业调度框架。Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.2。

Dubbo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [1] Spring框架无缝集成。

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

Spring框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

spring cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

如何才能成为java架构师?我为大家来分析一下?

工作2-3年迷惘,知识不成体系,不知道如何选择公司,太过于安逸,那你可能是不知道java体系的强大。

首先架构师不是那么好当,技术实力一定要过关,要具有架构师的思想,其次架构师是企业级开发所需的Dubbo框架、zookeper基本原理、redis分布式缓存、JVM性能优化,Nginx+apache+Tomcat集群部署、大数据hadoop,Hbase实时计算spark、storm、数据分析分词和权重等核心技术。

如何成为一个优秀的架构师呢?我用七张图片来告诉大家。

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

另外的四张图片想成为架构师的可以私信我,每天更新java架构师技术视频资料。

大家可以先学习下分布式锁的实现:

链接: https://pan.baidu.com/s/1y8rkldBEpkHXHS3GvJXGTg 密码: umu3

如何学会Java框架?

。准备学习Java框架说明在Java基础上已经有过学习的经历,那么这时候基础的扎实与否就可以决定框架的学习速度了。

学习框架的方向

Java框架,在学校可能大部分是用ssh为例,即spring,Struts和herbnate。但是实际上工作中用到的更多是ssm,即spring,springmvc和mybatis。

(图为自己拍摄的spring框架书籍)

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

最重要的部分是spring,因为在后续在工作中在公司里会用到的ssm以及springboot都是基于spring框架的集成框架。

因此主攻spring框架,其次是数据持久层的框架最好是mybatis,然后控制层框架是springmvc。

学习Java框架的方案:

学习方法个人认为是自己通过网上的资料或者学习视频,自己动手搭建这些框架并且可以跑起一个完成了增删改查的程序。

学习资料可以是博客,最好的官方文档。

学习视频可以去淘宝花几块钱买,不亏的。

java编程现在在市场占比最大的框架是什么框架?

Java作为目前最流行的编程语言,得到了大量程序员和大量互联网公司的青睐,BAT、华为、字节跳动等大厂都有Java相关的项目。Java的流行得益于它成熟的生态和框架,不管是什么中间件,首先会提供与Java集成的方案和Api。那现在企业开发中,有哪些流行的开发框架呢?

最经典的SpringMVC

SpringMVC是基于Spring的一个强大的的Web框架。通过Spring的IOC功能,SpringMVC的开发变得非常简单。目前很多项目都是基于SpringMVC框架开发,但是SpringMVC的XML文件配置太复杂,创建一个项目,我们需要编写web.xml、spring.xml以及数据库相关配置,这些xml文件管理起来很繁琐,所以现在很多开发者开始转向SpringBoot。

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

微服务框架SpringBoot

微服务的概念提出于2012年,经过几年的发展,目前已经非常成熟。微服务的核心在于“微”,与传统单体架构的区别在于,单体架构单个系统复杂,模块耦合度高,扩展性差,而微服务各模块独立存在,模块直接通过Http或者RPC方式进行通信。由于模块耦合度小,相互独立,所以扩展性好。SpringBoot由Pivotal团队开发的Web框架,其核心作用就是简化了Spring应用的初始搭建以及开发过程。抛弃了复杂的xml文件的配置方式,使得开发者可以快速创建一个Web应用。SpringBoot现在已经成了企业开发项目首先的Web层框架。

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

ORM框架Mybatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。Mybatis是完全面向sql编程的框架,支持灵活的sql编写,非常适合具有复杂关系查询的业务场景。

spring框架的好处,为什么使用它?,Java开发如果不让使用spring框架,会有多大影响?

最后

以后三种框架我觉得是最流行、市场占比最大的Java框架,借助这三个框架,再结合一些中间件如:Redis、Nginx、Mysql(Oracle)就可以完成99%项目的开发。所以,正在学习Java或者刚入门的Java程序员,好好掌握这些框架,Java编程的过程中,你就能如鱼得水,轻松应对各种项目。

我是阿迈达,有趣的互联网软件工程师。专业角度分析技术原理,幽默的态度解读科技互联网资讯。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论