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

Spring boot的特点

1. 创建独立的Spring应用程序
2. 嵌入的Tomcat,无需部署WAR文件
3. 简化Maven配置
4. 自动配置Spring
5. 提供生产就绪型功能,如指标,健康检查和外部配置
6. 绝对没有代码生成和对XML没有要求配置

Spring boot的使用

1、maven配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.springboot.sample</groupId><artifactId>spring-boot-sample</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>spring-boot-sample</name><description>Spring Boot Sample Web Application</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.3.2.RELEASE</version><relativePath /> </parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- MYSQL --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- Spring Boot JDBC --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>复制代码

2、application类

@SpringBootApplication
@ServletComponentScan
public class SpringBootApplication extends SpringBootServletInitializer {private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class);public static void main(String[] args) {SpringApplication.run(SpringBootSampleApplication.class, args);}
}
复制代码

3、配置类

@Repository
@Component
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter implements EnvironmentAware{private static final Logger logger = LoggerFactory.getLogger(MyWebAppConfigurer.class);private RelaxedPropertyResolver propertyResolver;@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 多个拦截器组成一个拦截器链// addPathPatterns 用于添加拦截规则// excludePathPatterns 用户排除拦截registry.addInterceptor(new MyInterceptor1()).addPathPatterns("/**");registry.addInterceptor(new MyInterceptor2()).addPathPatterns("/**");super.addInterceptors(registry);}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/res/**").addResourceLocations("classpath:/res/");// 可以直接使用addResourceLocations 指定磁盘绝对路径,同样可以配置多个位置,注意路径写法需要加上file:registry.addResourceHandler("/imgs/**").addResourceLocations("file:D:/imgs/");super.addResourceHandlers(registry);}
}复制代码

4、添加filter

@WebFilter(filterName="myFilter",urlPatterns="/*")
public class MyFilter implements Filter {@Overridepublic void destroy() {System.out.println("过滤器销毁");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {System.out.println("执行过滤操作");   chain.doFilter(request, response);}@Overridepublic void init(FilterConfig config) throws ServletException {System.out.println("过滤器初始化");}
}
复制代码

5、controller

@RestController
@RequestMapping("/hello")
public class HelloController {@RequestMapping("/info")public Map<String, String> getInfo(@RequestParam String name) {Map<String, String> map = new HashMap<>();return map;}
}
复制代码

6、service

@Service
public class HelloWorldService {public String getHelloMessage() {return "Hello world";}
}
复制代码

7、全局异常处理

@ControllerAdvicepublic class GlobalExceptionHandler {@ExceptionHandler(RuntimeException.class)@ResponseBody //在返回自定义相应类的情况下必须有,这是@ControllerAdvice注解的规定public MyExceptionResponse exceptionHandler(RuntimeException e, HttpServletResponse response) {return resp;}}
复制代码


说明:

@ControllerAdvice是controller的一个辅助类,最常用的就是作为全局异常处理的切面类

@ControllerAdvice可以指定扫描范围

@ControllerAdvice约定了几种可行的返回值,如果是直接返回model类的话,需要使用@ResponseBody进行json转换

1、返回String,表示跳到某个view

2、返回modelAndView

3、返回model + @ResponseBody

8、添加被其他配置使用的bean

@Bean
public PageHelper pageHelper(DataSource dataSource) {PageHelper pageHelper = new PageHelper();return pageHelper;
}
复制代码

9、添加数据加载类

@Component
public class MyStartupRun implements CommandLineRunner {@Overridepublic void run(String... args) throws Exception {System.out.println(">>>>>>>>>>>>>>>服务启动执行");}
}
复制代码

该组件在项目启动时会立即执行

文章最后喜欢的小伙伴们,可以关注下我,以后带来更多精彩内容。

转载于:https://juejin.im/post/5ccd3de751882540e974b2a3

spring boot介绍及使用详解相关推荐

  1. Spring Boot的启动器Starter详解

    Spring Boot的启动器Starter详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Spring Boot ...

  2. ElasticSearch——Spring Boot 集成 ES 操作详解

    文章目录 ElasticSearch--Spring Boot 集成 ES 操作详解 1.SpringBoot 集成 ES 2.索引的API操作详解 3.文档的API操作详解 ElasticSearc ...

  3. 轻量级数据库sqlite,spring boot+sqlite的配置详解 (一)

    spring boot+sqlite的配置,及成功运行详解 sqlite数据库的安装与调试 首先,通过sqlite官方地址下载对应的安装包 https://www.sqlite.org/downloa ...

  4. 轻量级数据库sqlite,spring boot+sqlite的配置详解 (二)

    轻量级数据库sqlite,spring boot+sqlite的配置详解 (二) 轻量级数据库sqlite,spring boot+sqlite的配置详解 (一) 首先,需要创建一个spring bo ...

  5. Spring Boot jackson配置使用详解

    Spring Boot系列-json框架jackson配置详解 T1 - 前言 目前Java最常见的3中JSON操作框架分别为Gson.Jackson.FastJson,该篇文章主要讲解jackson ...

  6. Spring Boot的SpringApplication类详解

    相信使用过Spring Boot的开发人员,都对Spring Boot的核心模块中提供的SpringApplication类不陌生.SpringApplication类的run()方法往往在Sprin ...

  7. Spring boot中使用aop详解

    aop是spring的两大功能模块之一,功能非常强大,为解耦提供了非常优秀的解决方案. 现在就以springboot中aop的使用来了解一下aop. 一:使用aop来完成全局请求日志处理 创建一个sp ...

  8. (转)Spring Boot(八):RabbitMQ 详解

    http://www.ityouknow.com/springboot/2016/11/30/spring-boot-rabbitMQ.html RabbitMQ 即一个消息队列,主要是用来实现应用程 ...

  9. Spring Boot拦截器(Interceptor)详解

    写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站. 文章目录 Interceptor 介绍 Interceptor 作用 自定义 Inte ...

  10. Spring Boot的Tomcat 启动详解

    https://juejin.im/post/5a3273a451882575d42f68f9 在解读embeddedTomcat容器启动之前有几个要点需读懂 Spring Boot @Configu ...

最新文章

  1. cesium按路径飞
  2. BZOJ4129: Haruna’s Breakfast
  3. 微信的公众号为什么不做分类?
  4. oracle点勾算提交吗,oracle表结构和数据导出时的一些勾选项说明
  5. nfs数据同步备份:多节点nfs共享(mount)server节点数据
  6. 大小端、位段(惑位域)和内存对齐
  7. 去杠杆高歌猛进,借呗会倒闭吗?
  8. 【亲测有效】Kali Linux无法安装网易云音乐的解决方案
  9. 牛逼!国产开源的远程桌面火了,只有 9MB,支持自建中继器!
  10. kafka connect分布式安装
  11. SAP固定资产业务场景及方案
  12. 如何避免IE浏览器自动升级到版本11
  13. 计算机硬盘发展现状,固态硬盘的发展现状
  14. EasyRTMP结合海康HCNetSDK获取海康摄像机H.264实时流并转化成为RTMP直播推流(附源码)
  15. 番茄花园洪磊,究竟错在哪里?
  16. mail.yahoo.com.cn:yahoo邮箱用outlook无法发信问题的解决办法
  17. push ebp到底是什么意思
  18. 《NFL橄榄球》:卡罗来纳黑豹·橄榄1号位
  19. C++反射:全方位解读Lura库的前世今生!
  20. format函数用法详解

热门文章

  1. 数据集:高考录取分数
  2. java为什么要连接Mysql_为什么要启动mysql workbech,java才能连接mysql数据库呢?
  3. LRN局部响应归一化
  4. ServletContext的用法
  5. 电脑电子版文件怎么弄_清空回收站后,如何找回删除的文件?
  6. Information Extraction
  7. Error in loadNamespace(name) : there is no package called ‘yaml’
  8. python 学习小结(1)
  9. 【博弈找规律问题汇总】
  10. 01串匹配问题 —— Binary Strings【Gym - 101845B】