Spring Boot简介

Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。

Spring Boot的主要优点:

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求

用Spring Boot编写helloworld

1.首先创建一个maven项目

2.添加Spring Boot依赖

通常,让你的Maven POM文件继承 spring-boot-starter-parent,并声明一个或多个 Starter POMs依赖即可。

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

3.创建java类,编写helloworld代码

package com.xzh.demo;

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 DemoApplication { @RequestMapping("/hello")
public String index() {
return "Hello World!!!";
} public static void main(String[] args) {
SpringApplication.run(com.xzh.demo.DemoApplication.class, args);
}
}

核心注解类说明

@RestController

就是@Controller+@ResponseBody组合,支持RESTful访问方式,返回结果都是json字符串

@SpringBootApplication

就是@SpringBootConfiguration+@EnableAutoConfiguration+ @ComponentScan等组合在一起,非常简单,使用也方便

@EnableAutoConfiguration注解

这个注解告诉Spring Boot“猜测”将如何配置Spring。@EnableAutoConfiguration是借助@Import的帮助,将所有符合自动配置条件的bean定义加载到IoC容器。

@ComponentScan

用注解配置实现自动扫描,默认会扫描当前包和所有子包,并加载符合条件的组件(比如@Component和@Repository等),和xml配置自动扫描效果一样

@SpringBootConfiguration

说明这是一个配置文件类(SpringBoot社区推荐使用基于JavaConfig的配置形式)

4.运行创建的java类

2017-07-21 16:18:35.787  INFO 19984 --- [           main] com.xzh.demo.DemoApplication             : Starting DemoApplication on LAPTOP-T56QDVQ2 with PID 19984 (F:\workspaceIDEA\helloworld\target\classes started by lenovo in F:\workspaceIDEA\helloworld)
2017-07-21 16:18:35.789 INFO 19984 --- [ main] com.xzh.demo.DemoApplication : No active profile set, falling back to default profiles: default
2017-07-21 16:18:35.837 INFO 19984 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@8646db9: startup date [Fri Jul 21 16:18:35 CST 2017]; root of context hierarchy
2017-07-21 16:18:37.293 INFO 19984 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-07-21 16:18:37.305 INFO 19984 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2017-07-21 16:18:37.306 INFO 19984 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.15
2017-07-21 16:18:37.375 INFO 19984 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2017-07-21 16:18:37.375 INFO 19984 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1542 ms
2017-07-21 16:18:37.477 INFO 19984 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-07-21 16:18:37.481 INFO 19984 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-07-21 16:18:37.481 INFO 19984 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-07-21 16:18:37.481 INFO 19984 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-07-21 16:18:37.481 INFO 19984 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2017-07-21 16:18:37.735 INFO 19984 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@8646db9: startup date [Fri Jul 21 16:18:35 CST 2017]; root of context hierarchy
2017-07-21 16:18:37.769 INFO 19984 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello]}" onto public java.lang.String com.xzh.demo.DemoApplication.index()
2017-07-21 16:18:37.772 INFO 19984 --- [ 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-07-21 16:18:37.772 INFO 19984 --- [ 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-07-21 16:18:37.789 INFO 19984 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-21 16:18:37.789 INFO 19984 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-21 16:18:37.810 INFO 19984 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-21 16:18:37.887 INFO 19984 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-07-21 16:18:37.916 INFO 19984 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-07-21 16:18:37.919 INFO 19984 --- [ main] com.xzh.demo.DemoApplication : Started DemoApplication in 2.324 seconds (JVM running for 2.719)
2017-07-21 16:18:41.874 INFO 19984 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-07-21 16:18:41.874 INFO 19984 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2017-07-21 16:18:41.883 INFO 19984 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 9 ms

5.访问http://localhost:8080/hello

参考:

Spring Boot 官方文档学习(一)入门及使用

Spring Boot学习

Spring Boot应用程序开发入门

Spring Boot快速入门

Spring Boot参考指南

最新文章

  1. 解除win7网络限速.
  2. Atitit.ide技术原理与实践attilax总结
  3. 开发常用图标png、ico 图标下载
  4. Javascript初学篇章_2(数据类型的查看和转换/运算符)
  5. 烂泥:使用nginx利用虚拟主机搭建WordPress博客
  6. Windows 7远程桌面连接Ubuntu 16.04
  7. html-制作导航菜单
  8. 活动组件(五):一个activity的例子
  9. HDU 3076 ssworld VS DDD 概率dp,无穷级数,oj错误题目 难度:2
  10. android 四大组件Broadcast Receiver
  11. 详解SQL Server 2005 Express下的事件探查器
  12. 重写equal要重写 hashCode的原因
  13. CXF_Spring_Rest
  14. 【web】之 jquery上传插件的Plupload的使用
  15. pycharm设置自动换行的方法
  16. Python(四) —— 函数
  17. Java字符串连接的多种实现方法及效率对比
  18. python的执行过程
  19. FortiGate日志中session clash
  20. Docker快速搭建PHP+Nginx+Mysql环境(https://notemi.cn/docker-quickly-set-up-php-nginx-mysql-environment.html)

热门文章

  1. 使用caffe 的 python接口测试数据,选定GPU编号
  2. mac os x 使用scp取代sz rz
  3. C++学习笔记34 模版的原理
  4. Navicat for MySQL 之数据库迁移
  5. python使用hbase
  6. c++ two classes as each others&#39; friends
  7. iOS使用AVCaptureSession自定义相机
  8. 第一百八十四节,jQuery-UI,验证注册表单
  9. Servlet 打包部署
  10. OpenGL ES andoid学习————1