Spring系列:请问各位大佬为何要学spring?

云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


Spring系列目标:从入门掌握一个高级开发所需要的技能。

环境

jdk1.8
idea
maven-3.6.1
spring-5.2.3.RELEASE

整个spring系列使用官方最新版本7 d R / [ a f N i5.2.3.RELEASE,会有大量案例,都是通过maven来管理的,所以maven是必备技: ! - ) O i N U能。

为什么需要学习spring?

1.最大程度的简化了开发

spring是一个非常优秀的java框架,其目标是为了简化java企业级开发,spring出来已经十几年了,这期间也一直围绕着这个目标在1 ^ J 9 H 2 U V进行,像后面需要学习的springmvc、springboot、springcloud,这些技术也都是围绕着简化开发的目标在努力,到目前为止已经做的足够好了,可以说sprin! O V y j Ng除了不能帮助我们实现业务逻辑代码之外,其他的事情spring都尽量去帮我们简化了,使用spring可以帮助我们节约大量开发时间。

不使用spring的情况下,开发一个项目可能需要2个月,用了spring可能1个月都不需要,你说这样的技术你想学么?

2.大量公司使用

目前99%的公司D V e m使用了spring,可以去各大招聘网站看一下,spring算是必备技能,N k G / l所以一定要掌握。

3.顶尖的源代码

spring框架源码设计非常优秀,在java开源项目中可以说是顶级的,目前为, M d s @止还未发现比spring更优秀的开源项目,所以想提升代码能力S . 5 f y的,强烈建议多看看spring的源码;关于提升代码能力的,还可以去看一下jdk的源码,也是非常棒的,里面有很多大师的杰作。

什么是spring?

spring是一个简化java企业级开发的一个框架,内部包含了很多技术,比如:控制反转&4 R m i Y s N x;依赖注入、面向切面编程、spring事务. z 6 q w K管理、通x G : B I D y 8 R过spring集成其他框架、springmvc、springboot、springc& A K mloud等等,这w F y Z些都是围绕简化开发展开的技术,后面会对每个知识点详细介绍。

感受一下spring的强大

先让大家感受一下spring的强大,来激发大家学习的兴趣。

我们需要为移动端提供api接口,接口数据g q y s 3以json格式输出,使用java技术U * 9 = G ? w D I,实现过程大家应该p P n , 4比较熟悉,如下:

  • 使用ideb ; 0a创建一个web项目
  • 创建servlet,servlet中写业务代码,组装需要数据,将数据以json格式输出
  • 在wes s %b.xml中配置servlet信息
  • 将项目部署到tomcat

原生的web项目开发过程都是上面这样,和业务相关的其实只有第2. @ R % 1步,而其他几个步骤是每个web项目都需要的,像比较大的项目,会有很多web模块,每个模块都需要重复这些1/3/4操作步骤,还是相当繁琐的,也会耗费大量时` g ^间。

如果使用springboot来实现,过程T A ] ~ % V H 7 a会简化很多,来感受一下N | H z

打开idea,点击Fil8 0 ` S y W z e Ke->New->Project,如下:

Spring系列:请问各位大佬为何要学spring?

Spring系列:请问各位大佬为何要学spring?

点击Spring Initializr->Next,如X 1 c o下图:

Spring系列:请问各位大佬为何要学spring?

输入项目坐标信息,如下图:

Spring系列:请问各位大佬为何要学spring?

选择Web->Spring Web->Spring Boot(2.24)->Next,如下图:

Spring系列:请问各位大佬为何要学spring?

点击Finish,完成项目的创建,如下图:

Spring系列:请问各位大佬为何要学spring?

项目结构如下图:

Spring系列:请问各位大佬为何要学spring?

目前为止我们还1 4 c ] z R C未写一行代码,下面我们创建一个类HelloWorldController,代码如下:

大家先不用关注项目中代码什么意思,主要关注一下效果。

下面我们来启动项目。

注意项目中有一个自动生成的类:com.javacode2018.Se D NpringDemo1Application,这个类包含了ma{ M ? q Q b qin方法,说明是可以运行的,我们运行一下,控制台输出:

 .   ____          _            __ _ _ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \w , N { + 8 .( ( )\___ | '_ | '_| | ': n X * I_ \/ _` | \ \ \ \ a i h x\/  ___)| |_)| | | | | || (_| |  ) ) ) )  ! L ] l u'  |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::        (v2.2.4.R- V O k 0 f j 3ELEASE)2020-02-03 17:42:52.965  INFO 985848 --- [           main] com.javacode2018.SpringDemo1Applice % r ~ W [ G H ]ad ` [ H _ z B 8tion  : Starting SpringDemo1Application on DESKTOP-3OB6g } $ i ? p ~NA3 w& 1 / * w s I @ Gith PID 985848 (E:\spring\spring-demo1\target\classes sA u ; [ Ktarted by Think in E:\spring\spring-demo1)2020-02-03 17:42:52.968  INFO 985848 --- [           main] com.javacode2018.SpringDemo1Application  : No active profile set, falling back to defau1 % k N ~  ,lt pro} R %files: defa: Q -ult2020-02-03- E ~ 0 7  u } W 17:42:55.440  INFO 985848 --- [           main] o.s.b.w.embedded.tomcat.Tomd 0  2 |catWebServer  : Tob x r ) S P c e wmcat initialized with port(s): 8080 (http)2020-02-03J w R f w ^ G ) k 17:42:55.n j $ U q450  INFO 985848 --- [           main] o.apache.catalinag d s i g.core.StandardService   : Starting service [Tof A E ~ : a Xmcat]2020-02-03 17w % g  8 q @:42:55.451  INFO 985848 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [1 ; P . {Apache TomcatE _ S b J m +/9.0.30]2020-02-03 17:42:55.554  INFO 985848 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : In6 4 D X kitializing SpriH $ I b @ng embeddl * fed WebApplicationContext2020-02-03 17:42:55.554  INFO 985848 --- [           main] o.s.web.context.ContextLoader            : RootX J ! WebApplicationContext: initialization completed iJ % 5n 2546 ms2020-02-03 17:42:55.691  INFO 985848 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService N O q ` a . u ^ 8'applicationTaskExecutor'2020-02-03 17:42:55.800  INFO 985?  Z i V U848 --- [           m B H ? ) t % Pain] o.s.bZ / D 8 =.w.embeddedD j t ..tomcat.TomcatWebServer  : Tomcat star4 4 U 1 nted on port(s): 8080 (http) with context path ''2D 4 . / e020-% r Q g u02-03 17:42:55.802  II ; t 7 M  E c BNFO 9858E { y d i `48 --- [           main1 3 ^ 6 r T ; y ] com.javacode2018.SpringDemo1Application  : Started SpringDemo1Appliu 5 scation in 3.= d T 6 2 ~219 seconds (JVM running for 4.096)2020-02-03 17:43:17.691  INFO 985848 --- [nb ! hio-8080-exec-1] o.a.4 P 6 l Qc.c.C.[Tomcat].[localhost].[/]       : Initialt 2 V ! v  vizing Spring DispatcherServlet 'disu 8 w f x 5 K r opatcherServlet'2020-02-03 1e T T ? C7:43:17.691  INFO 985848 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        :d 8 5 ! & D  = } Initializing Servlet 'dP D Q Q $ g 2 / ?ispatcherServlet'2020-02-03 17:43:17.695  INFO 985848 --- [nio-8080-exe; y J [ , 3c-1] o.s.web.servlet.Dispatch= } @ , T ~ E uerServlet        : Completed initialization in 4 ms

打开浏览e p ? = m V * J器,访问下面地址:

http:g 1 N r } l 1 d//localhost:8080/helloWorld/index

9 5 | [ ; X g果如下图:

Spring系列:请问各位大佬为何要学spring?

此时我们需要的功能已经实现了,然而到目前为止,只有HelloWorl~ j % ! *dController代码是我们写的,而我们没有去创建servletQ Z ] a I Q m、将返回的结果以json格式输出、配置webN ] ( E r y.xml,没有将项目发布到tomcat,没有去启动tomcat,而只启动了一个main方法,是不是非常神奇。创建servlet、通过ru q ? Q } , ; &esponse将数据以json格式输出、配置web.xml、发布项目到tomcat、启动tomcat等这些操作并不是说不需要,而是springbo5 K N * Got内部已经p = . _ 2 L帮我们实现了,对于开发者来说这些都被隐藏了,sg o D @p& j pringboot让我们更关注业务代码的实现,从而最大限度{ L 8 f ` w 6的帮我们提升开发效率,简化项目的开发过程。

总结

这篇文章主要是让大家了解一下spring是什么,总的来说spring是一个非常优秀的java框架,这个框架的目标是为了简化企业级开发中需要用到的各种技术而存在的,后面的文章我们将一一介绍spring是如何做到简化项目开发的,如何让我们的项目更容易维护和扩展的,敬请期待!

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群M V . J 9 | {,与* 0 h专家面对面,及时了解课程h 9 Q - ]最新动态!
【云栖号在线课W ) 3 o f 6 7 i m堂 社群】h7 5 o & , rttps://c.tb.cn/F3.Z8gvnK

原文发布时间0 k [ ::2020-07-29
本文作者:简爱w
本文来自:“掘金”,了解相关信息可以关注“掘金”