新建 SpringBoot 项目

直接通过 IDEA 来生成一个 Spring Boot 的项目,具体方法和上面类似:File->New->Project->Spring Initializr

注意勾选上 Spring Web 这个模块,这是我们所必需的一个依赖。当所有选项都勾选完毕之后,点击下方的按钮 Generate 下载这个 Spring Boot 的项目。下载完成并解压之后,我们直接使用 IDEA

项目结构分析

创建好项目后,自动生成项目结构如下图所示

以 Application 为后缀名的 Java 类一般就是 Spring Boot 的启动类,比如本项目的启动项目就是 SpringbootProjApplication 。我们直接像运行普通 Java 程序一样运行它,由于 Spring Boot 本身就嵌入 servlet 容器的缘故,我们的 web 项目就运行成功了, 非常方便。

需要注意的一点是 Spring Boot 的启动类是需要最外层的,不然可能导致一些类无法被正确扫描到,导致一些奇怪的问题。 一般情况下 Spring Boot 项目结构类似下面这样

com+- yidahu+- springbootproj+- SpringbootProjApplication.java|+- domain|  +- User.java|+- repository|  +- UserRepository.java|+- service|  +- UserService.java|+- controller|  +- UserController.java|+- config|  +- swagerConfig.java|
  1. Application.java 是项目的启动类
  2. domain 目录主要用于实体(Entity)
  3. repository 居于业务层和数据层之间,将两者隔离开来,在它的内部封装了数据查询和存储的逻辑
  4. service 层主要是业务类代码
  5. controller 负责页面访问控制
  6. config 目录主要放一些配置类

@SpringBootApplication 注解分析

SpringbootProjApplication.java

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

@SpringBootApplication ,这个注解的相关代码如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class}
), @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {@AliasFor(annotation = EnableAutoConfiguration.class)Class<?>[] exclude() default {};....
}

SpringBootConfiguration.java

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {@AliasFor(annotation = Configuration.class)boolean proxyBeanMethods() default true;
}

可以看出大概可以把 @SpringBootApplication 看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。根据 SpringBoot 官网,这三个注解的作用分别是:

@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制 @ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。 @Configuration:允许在上下文中注册额外的 bean 或导入其他配置类。 所以说 @SpringBootApplication 就是几个重要的注解的组合,为什么要有它?当然是为了省事,避免了我们每次开发 Spring Boot 项目都要写一些必备的注解。这一点在我们平时开发中也经常用到,比如我们通常会提一个测试基类,这个基类包含了我们写测试所需要的一些基本的注解和一些依赖。

新建 Controller

上面说了这么多,我们现在正式开始写 Spring Boot 版的 “Hello World” 吧。

新建一个 controller 文件夹,并在这个文件夹下新建一个名字叫做 HelloWorldController 的类。

@RestController 是 Spring 4 之后新加的注解,如果在 Spring4 之前开发 RESTful Web 服务的话,你需要使用@Controller 并结合@ResponseBody 注解,也就是说@Controller +@ResponseBody= @RestController。对于这两个注解,我在基础篇单独抽了一篇文章来介绍。

com.yidahu.springbootbase.controller

@RestController
@RequestMapping("springboot")
public class HelloWorldController {@GetMapping("/hello")public String getHello() {return "Hello SpringBoot !";}
}

默认情况下,Spring Boot 项目会使用 8080 作为项目的端口号。如果我们修改端口号的话,非常简单,直接修改 application.properties 配置文件即可。

src/main/resources/application.properties

server.port=8080

运行项目

运行 SpringbootProjApplication ,运行成功控制台会打印出一些消息,不要忽略这些消息,它里面会有一些比较有用的信息

通过 GET 方式访问http://localhost:8080/springboot/hello就可以获取到返回数据了

总结

通过本文我们学到了如何新建 Spring Boot 项目、SpringBoot 项目常见的项目结构分析、@SpringBootApplication 注解分析,最后实现了 Spring Boot 版的 "Hello SpringBoot !"。

Spring Boot系列 —(一)手把手搭建 SpringBoot 项目相关推荐

  1. Spring Boot 学习(一) 快速搭建SpringBoot 项目

    快速搭建一个 Spring Boot 项目 部分参考于<深入实践Spring Boot>.<Spring实战 第四版>与程序猿DD的有关博客. 参考(嘟嘟独立博客):http: ...

  2. Spring Boot系列 —(六)SpringBoot 多项目实现 RocketMQ 生产消费

    Maven 配置 生产者和消费者都添加 rocketmq 配置 pom.xml 添加如下配置 <!-- rocketmq --> <dependency><groupId ...

  3. springboot做系统所需的软硬件环境_最新Spring Boot实战文档推荐:项目搭建+配置+SSM整合...

    在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用XML,注意,排不支持,Spring Boot推荐开发者使用Java配置来搭建框架, Spring ...

  4. 【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Boot Test集成测试环境搭建

    文章目录 集成测试 @SpringBootTest的集成测试 Spring Boot Test集成测试环境搭建 参考 源代码 集成测试 集成测试(Integration Testing,缩写为INT) ...

  5. ssm如何支持热部署_最新Spring Boot实战文档推荐:项目搭建+配置+SSM整合

    在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用XML,注意,排不支持,Spring Boot推荐开发者使用Java配置来搭建框架, Spring ...

  6. Spring Boot + vue-element 开发个人博客项目实战教程(四、数据库搭建和配置)

    前言 java项目已经创建好了,接下来我们要准备数据库了,数据库是干嘛的相信大家都知道了,我在这就不说了,我们需要做的就是在电脑上安装mysql数据库. 附菜鸟教程的MySQL基础学习教程:https ...

  7. java+spring+mysql配置_JAVA后台搭建(springboot+mybatis+mysql)项目搭建

    前言 上篇文章写了基本环境配置的搭建,接下来我们需要搭建项目了,项目搭建使用的IDEA,springboot项目的搭建非常快只需要几分钟,然后介绍MyBatis以及MySql的基本配置以及项目的Hel ...

  8. 快速搭建Springboot项目的两种方式!!

    大家好,我是雄雄,欢迎关注微信公众号[雄雄的小课堂]. 前言 Springboot的特点就是简单.快速和方便,使用idea不到一分钟就可以快速搭建springboot项目,并且,在这里,你不用写spr ...

  9. Spring Security系列教程03--创建SpringSecurity项目

    前言 在上一章节中,一一哥 已经带大家认识了Spring Security,对其基本概念已有所了解,但是作为一个合格的程序员,最关键的肯定还是得动起手来,所以从本篇文章开始,我就带大家搭建第一个Spr ...

  10. 国内最全的Spring Boot系列之五

    ​历史文章(累计400多篇文章) <国内最全的Spring Boot系列之一> <国内最全的Spring Boot系列之二> <国内最全的Spring Boot系列之三& ...

最新文章

  1. ohmyzsh用在mysql_oh-my-zsh,让你的终端从未这么爽过
  2. proftpd mysql_Proftpd(MySQL验证+配额)
  3. cve-2019-7609 Kibana远程代码执行漏洞攻击方法和漏洞原理分析
  4. Git远程:分支的upstream
  5. Python才排第8名!2018增速最快TOP 10编程语言盘点
  6. java多线程模拟实现12306售票
  7. mysql c null_MySQL中NULL字段的比较问题
  8. ARP协议及欺骗原理
  9. 惠普服务器如何选择光驱启动不了系统,惠普笔记本bios设置光盘启动方法
  10. js exploit
  11. ufs2.1 android bench,一加UFS 3.0手机极限测试 对比UFS2.1测评
  12. 共享资源计算机的用户名和密码,电脑共享文件为什么提示要用户名密码?
  13. 回不去的童年,归不了的故乡
  14. 云服务器查看物理MAC地址的方法
  15. Windows7 VS2015 下编译 PythonQt3.2
  16. linux 查看内存 udimm rdimm,关于内存类型UDIMM、RDIMM、LRDIMM
  17. 服务器打包文件工具,项目增量发版之全自动打包流程(patch-generator-desk打包软件)...
  18. 一个合格的中级前端工程师需要掌握的技能笔记(上)
  19. 一文了解常用效率记笔记软件
  20. 武汉市科技重大专项项目榜单申报条件、流程时间

热门文章

  1. 打发时间的网站,收藏起来吃鸡玩腻了玩玩这些,够你玩一年
  2. MIUI12系统如何刷入开发版获得ROOT权限
  3. 优秀的程序员都热爱写作
  4. java lpad oracle_oracle函数lpad的简单用法
  5. echarts去除x轴和y轴上的刻度值_Echarts实现隐藏x轴,y轴,刻度线,网格
  6. Python基础(编码格式、文件、目录)
  7. 清华大学计算机系2016名单,2016年本科生表彰名单
  8. 判断邮箱正确的c语言代码,如何用c语言来识别电子邮箱是否正确
  9. cygwin 复制粘贴
  10. 万字长文|大数据学前准备之Linux入门笔记(附资料)