背景

想想之前搭建一个WEB项目,不管项目的功能简单或复杂,都需要哪些步骤:

  • 配置 web.xml,加载 Spring 和 Spring mvc
  • 配置数据库连接、配置 Spring 事务
  • 配置加载配置文件的读取,开启注解
  • 配置日志文件
  • 配置完成之后部署 Tomcat 调试

对于很多新手来说,很多配置还有很多问题,并不能一次成功

公众号:猿外郎

那 springboot 有什么优点呢?

核心理念:开箱即用,快速启动

它使用“约定优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

约定优于配置

也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。本质是说,开发人员仅需规定应用中不符约定的部分。

从本质上来说,Spring Boot就是Spring,它只是做了一些对Spring Bean的默认配置。有了SpringBoot只需要几个配置就可以搭建一个web项目!使用 Spring Boot 到底有多爽,用下面这幅图来表达

公众号:猿外郎

快速入门

创建 Maven 工程

这里介绍使用 IDEA 来创建项目

  • Create New Project
  • 左边选项框选择 Maven
  • 填写相关内容后,一路 Next
  • 最后确定信息无误点击Finish,OK done!

官方建议项目结构

myproject
+-src+- main+- java+- com.example.myproject+- comm+- model+- repository+- service+- web+- Application.java+- resources+- static+- templates+- application.properties+- test
+-pom.xml

  • Application.java 建议放到根目录下面,是项目的启动类,Spring Boot 项目只能有一个 main() 方法;
  • comm 目录建议放置公共的类,如全局的配置文件、工具类等;
  • model 目录主要用于实体(Entity)与数据访问层(Repository);
  • repository 层主要是数据库访问层代码;
  • service 层主要是业务类代码;
  • web 层负责页面访问控制,即controllerhandler
  • static 目录存放 web 访问的静态资源,如 js、css、图片;
  • templates 目录存放页面模板;
  • application.properties 存放项目的配置信息。

pom.xml 引入依赖

首先,以 parent 引入 SpringBoot

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.7.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent>

然后,引入 web 依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

配置文件

默认读取 classpath 下的 application.propertiesapplication.yml ,推荐使用 yml 文件格式。

建议配置多个不同环境的文件,只需两步:

  • application.yml 文件中配置 ,dev 表示开发环境,prod 表示生产环境,命名规则根据个人或公司而定;
spring:profiles:active: dev

  • 创建 application-dev.yml ,该文件内配置一些不同环境的配置。

创建启动类 HelloApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class HelloApplication {public static void main(String[] args) {SpringApplication.run(CsttApplication.class, args);}
} 

右键 Run HelloApplication.java 即可启动。

访问处理

创建 controller

@RestController
public class HelloWorldController {@RequestMapping("/hello")public String index() {return "Hello World";}
}

@RestController 的意思就是 Controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!启动主程序,打开浏览器访问 http://localhost:8080/hello,就可以看到效果了。

springboot controller访问不到_Spring Boot 开篇:快速入门相关推荐

  1. springboot static访问不到_Spring Boot 的静态资源处理

    黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Python开发点击右侧关注,探讨技术话题! 作者 | liuxiaopeng 来源 | cnblogs.com/ ...

  2. Spring Boot的快速入门

    Spring Boot的快速入门 1.导入第一个maven项目 自动生成maven项目 2.了解maven项目结构 3.启动服务 和普通maven项目结构是一样的,值得注意的是,启动服务的入口是 ![ ...

  3. springboot controller访问不到_构建微服务:快速搭建Spring Boot项目

    Spring Boot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  4. Spring Boot【快速入门】

    Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Sp ...

  5. Spring Boot JWT 快速入门

    本章节讨论 jwt 在 spring boot 中的应用.意在快速入门 jwt. java jdk1.8 maven 3.2+ spring boot 2.0+ JSON Web Token(JWT) ...

  6. springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...

    server: port: 8088 servlet: context-path: /sid spring: mvc: view: prefix: / suffix: .html /** * 返回界面 ...

  7. springboot定时发送短信_spring boot 1.5.4 定时任务和异步调用(十)

    1Spring Boot定时任务和异步调用 我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. sp ...

  8. springboot 事务手动回滚_Spring Boot中的事务是如何实现的

    1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...

  9. springboot oauth2登录成功处理器_Spring Boot Security 整合 OAuth2 设计安全API接口服务...

    简介 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版.本文重点讲解Spring Boot项目对OAuth2进行的实现,如果你对OAut ...

最新文章

  1. Centos7安装Nginx详细步骤
  2. 时区切换导致quartz定时任务没有触发问题
  3. CodeSmith实用技巧(十四):使用Progress对象
  4. Linux系统介绍(二)文件系统结构
  5. Python+selenium 自动化-chrome页面静止、冻结技术,获取web动态页面的Xpath方法,查看浏览器动态dom节点
  6. ASP.NET MVC: 使用自定义 ModelBinder 过滤敏感信息
  7. 为什么我们要升级到 iOS 12.1.3?
  8. css 单位之px , em , rem
  9. 【转载】shell中EOF的用法
  10. 蓝牙模块HC-06的基本设置和他的AT指令集
  11. 超分算法之SRCNN
  12. 多个jdk共存与切换
  13. IDEA设置鼠标滚轮控制缩放大小
  14. ept技术_EPT与VPID
  15. xcode 软件˙∆集~
  16. 如何把一张图片调整为另一张图片大小,不变形
  17. 盘一盘 Python 系列 - SciPy
  18. Word UVA - 517 状态压缩 暴力搜索
  19. Python实现文本替换
  20. 基于Simulink融合IMU传感器数据(附源码)

热门文章

  1. c语言dfs算法,DFS算法源程序
  2. python爬取网页内容requests_[转][实战演练]python3使用requests模块爬取页面内容
  3. C++ static、const和static const类型成员变量声明及其初始化
  4. Docker镜像导致centos-root根分区容量爆满
  5. 用POLARDB构建客到智能餐饮系统实践
  6. SylixOS中AARCH64跳转表实现原理
  7. 搭建一个舒心高效的windows + shell 工作环境
  8. 写得蛮好的linux学习笔记五-认识SHELL(收藏)
  9. 前端清单之Vue.js篇
  10. C#2.0 Socket套接字编程之实例初探 200