SpringBoot学习系列之一

一、SpringBoot是什么

spring Boot可以基于Spring轻松创建可以“运行”的、独立的、生产级的应用程序。 对Spring平台和第三方类库我们有自己看法和意见(约定大于配置),所以你最开始的时候不要感到奇怪。大多数Spring Boot应用程序需要很少的Spring配置。

您可以使用Spring Boot创建可以使用java -jar或传统 war 包部署启动的Java应用程序。 我们还提供一个运行“spring scripts”的命令行工具。

那我们举个栗子:

假设你受命用Spring开发一个简单的Hello World Web应用程序。你该做什么?我能想到一些基本的需要。

1.一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有SpringMVC和Servlet API这些依赖。

2. 一个web.xml文件(或者一个 WebApplicationInitializer 实现),其中声明了Spring的 DispatcherServlet 。

3.一个启用了Spring MVC的Spring配置。

4.一个控制器类,以“Hello World”响应HTTP请求。

5.一个用于部署应用程序的Web应用服务器,比如Tomcat。

最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用样板。既然所有Spring Web应用程序都要用到它们,那为什么还要你来提供这些东西呢?

而我们要用SpringBoot来写一个HelloWorld的WEB应用程序。我们需要做些什么呢。

1. 设置SpringBoot的Parent

 

2. 导入SpringBoot的Web支持

 

3. 在启动类中写一个HelloWorld的方法

 

4.然后在地址栏中输入:localhost:8080/helloboot,就会出来我们想要的内容。

其实我们用IDEA来开发的话,第一步第二步也不需要我们去做,直接选择SpringIntializr来进行开发就可以了。

 

所以你现在是不是明白SpringBoot是做什么的,和Spring有什么区别了呢。

二、SpringBoot的特点

        1.自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。Spring Boot实现了自动配置,这让Spring能够智能探测正在构建何种应用程序,自动配置必要的组件以满足应用程序的需要。对于那些常见的配置场景,不再需要显式地编写配置了,Spring会替你料理好一切。

        2.起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。

        3.命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。

        4.Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。

三、代码解释

        1、Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。

        2、在pom.xml文件中,dependencies是父起步依赖。

Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或某类功能。

        3、Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。举个例子来说明一下这个起步依赖的好处,比如组装台式机和品牌机,自己组装的话需要自己去选择不同的零件,最后还要组装起来,期间有可能会遇到零件不匹配的问题。耗时又消力,而品牌机就好一点,买来就能直接用的,后续想换零件也是可以的。相比较之下,后者带来的效果更好点(这里就不讨论价格问题哈),起步依赖就像这里的品牌机,自动给你封装好了你想要实现的功能的依赖。就比如我们之前要实现web功能,引入了spring-boot-starter-web这个起步依赖。

    4、@SpringBootApplication 开启了Spring的组件扫描和Spring Boot的自动配置功能。实际上, @SpringBootApplication 将三个有用的注解组合在了一起。

        Spring的 @Configuration :标明该类使用Spring基于Java的配置。

        Spring的 @ComponentScan :启用组件扫描,这样你写的Web控制器类和其他组件才能被自动发现并注册为Spring应用程序上下文里的Bean。

        Spring Boot 的 @EnableAutoConfiguration :启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。自动配置类通常采用基于你的 classpath 和已经定义的 beans 对象进行应用。

就是这一行配置开启了Spring Boot自动配置的魔力,让你不用再写成篇的配置了。

        5、@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

    1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver则不起作用,返回的内容就是Return 里的内容(String/JSON)。
例如:本来应该到success.jsp页面的,则其显示success.

    2)如果使用@RestController注解Controller,需要返回到指定页面,则需要配置视图解析器InternalResourceViewResolver,可以利用ModelAndView返回试图。

    3)如果使用@Controller注解Controller,如果需要返回JSONXML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

 

 

 

 

 

 

 

 


猜你喜欢

转载自blog.csdn.net/qq_28640763/article/details/80059760
今日推荐