SpringBoot-从入门到放弃(一) 简介与helloworld

        Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。——抄袭百度百科,以下简称SB。

        我也是一个正式工作没多久的小程序员,最近看了也快一个月的sb,平时学的东西都是零零散散的记在书里、注释在代码里、写在笔记里,感觉过于分散,以后想拿出来看看都不方便。干脆就直接把博客当笔记,和大家分享一下从入门到放弃的经验吧。

        初学了1个月的sb,对比起SpringMVC,我觉得是简化了许多配置,简化了许多项目依赖的管理,完成了很多框架的整合,也不用写许多原生的代码,很多东西SB都帮你默认配置好了,甚至连web容器都不需要,集成了许许多多常用的框架与工具,不需要我们再去东拼西凑找jar包、找依赖、复制修改配置文件了。

打个比方,之前搭建一个web项目,你需要做spring和hibernate之类的orm框架整合、需要做spring和strut2的整合、需要做log4j和slf4j的整合等等等等…………一大堆jar包和配置文件等你去管理。而用了SpringBoot之后,就基本什么都不用去整合了,SB全部帮你弄好了,默认的配置文件也是很人性化的,能满足大部分需求了。

        接下来就在一起入坑吧,以下是最简单的默认sb的项目目录结构


    静态资源目录,主要存放的是jsp页面,js,图片,配置文件等。SB会默认帮我们创建一个空的配置文件application.properties,接下来看看Helloworld代码

package com.kazz;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class HelloworldApplication{

	public static void main(String[] args) {
		SpringApplication.run(HelloworldApplication.class, args);
	}

	@RequestMapping("/")
	public String hello() {
		return "hello,springboot";
	}

}

        代码很简单,就是一个主函数启动程序,再加上一个SpringMVC里面常用的@RestController和@RequestMapping("/")注解,拦截根目录下的请求,此时程序没有部署到任何web容器,直接点击运行按钮,启动程序,控制台输出日志如下

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.1.RELEASE)

2017-03-19 23:28:22.697  INFO 3920 --- [           main] com.kazz.HelloworldApplication           : Starting HelloworldApplication on DESKTOP-MQ8Q6N3 with PID 3920 (E:\eclipse-springboot\helloworld\target\classes started by Kazz in E:\eclipse-springboot\helloworld)
2017-03-19 23:28:22.699  INFO 3920 --- [           main] com.kazz.HelloworldApplication           : No active profile set, falling back to default profiles: default
2017-03-19 23:28:22.744  INFO 3920 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4cc451f2: startup date [Sun Mar 19 23:28:22 CST 2017]; root of context hierarchy
2017-03-19 23:28:24.539  INFO 3920 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-03-19 23:28:24.548  INFO 3920 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2017-03-19 23:28:24.549  INFO 3920 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.5
2017-03-19 23:28:24.615  INFO 3920 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2017-03-19 23:28:24.615  INFO 3920 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1875 ms
2017-03-19 23:28:24.722  INFO 3920 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-03-19 23:28:24.727  INFO 3920 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-03-19 23:28:24.728  INFO 3920 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-03-19 23:28:24.728  INFO 3920 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-03-19 23:28:24.728  INFO 3920 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-03-19 23:28:24.932  INFO 3920 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4cc451f2: startup date [Sun Mar 19 23:28:22 CST 2017]; root of context hierarchy
2017-03-19 23:28:24.979  INFO 3920 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String com.kazz.HelloworldApplication.hello()
2017-03-19 23:28:24.982  INFO 3920 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-03-19 23:28:24.982  INFO 3920 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-03-19 23:28:25.001  INFO 3920 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-19 23:28:25.001  INFO 3920 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-19 23:28:25.045  INFO 3920 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-19 23:28:25.143  INFO 3920 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-03-19 23:28:25.199  INFO 3920 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-03-19 23:28:25.203  INFO 3920 --- [           main] com.kazz.HelloworldApplication           : Started HelloworldApplication in 2.831 seconds (JVM running for 3.324)
2017-03-19 23:28:28.628  INFO 3920 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-03-19 23:28:28.628  INFO 3920 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2017-03-19 23:28:28.641  INFO 3920 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 13 ms

        打开浏览器,输入地址http://localhost:8080/,显示的页面如下



可见,我没有做任何的配置,SB程序就自动使用Tomcat启动,上下文根为/,端口默认8080

这样一来,helloworld程序就搞定了,是不是很简单,下一篇我将要将怎么配置开发工具以及创建SB项目



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值