当前位置: 首页 > news >正文

SpringBoot学习之路:02.第一个程序Hello World及项目结构介绍

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

         上一篇我们介绍了Spring Boot项目的环境搭建和在idea下项目的创建过程,今天要说的是Spring Boot项目的下的第一个程序Hello World,及Spring Boot项目结构的分析。

首先打开Spring Boot初始项目:

193202_lyFm_2846946.png

删除暂时不用的目录.mvn以及git配置忽略文件.gitignore、maven的mvnw和mvnw.cmd文件;展开项目目录如下:

193823_kEx6_2846946.png

1.项目目录说明

        下面先就项目目录做说明:src目录下是main和test,main是后面我们主要用到的目录,使我们源码的编写目录,test目录是我们做单元测试的目录;main目录下包含java和resources,java目录就是写java源代码的目录,resources是放置配置文件和页面静态资源文件的目录;展开resources目录包含static和templates目录,static是spring boot默认的静态资源目录,templates是默认的页面模板放置目录。

        java文件下默认创建了Spring Boot的启动类BootApplication,注释了@SpringBootApplication,后面的章节我们会专门分析Spring Boot的注释,启动类是包含一个Main方法,也是Spring Boot应用的启动入口,如下:   

195550_j22O_2846946.png

resources下的application.properties是项目的配置文件我们以后不使用它,而是采用支持YAML语法的application.yml配置文件,可读性非常高,将properties文件换成yml文件,并且在yml文件中做一些基本的配置,如下:

200433_GStc_2846946.png

server是对服务器的信息的配置,本例配置了服务器的端口是80,地址是本机地址127.0.0.1,项目content目录是rest,待会通过启动后访问即可明白配置。

2.Spring Boot的maven文件依赖说明

打开项目目录下的pom.xml文件,此文件是maven构建项目的配置文件,里面定义了项目的基本信息,及依赖、插件等信息,对Maven不熟悉的同学可以先看看maven的相关知识。

201524_U8Fg_2846946.png

以上是项目的基本信息以及pringboot官方推荐我们使用spring-boot-starter-parent的依赖,spring-boot-starter-parent包含了以下信息:

1、定义了jdk编译级别    

2、使用utf-8编码

3、实现了通用的测试框架junit

4、智能资源过滤

5、智能的插件配置

201840_peFn_2846946.png

以上是项目初始的主要依赖,还记得上章《SpringBoot学习之路:01.开发环境搭建及概念叙述》在创建项目时我们勾选了web和devtools依赖,这里就在pom计入了相关依赖,test是单元测试依赖,我们后面需要什么依赖直接在pom文件加入依赖即可。

202144_jfyC_2846946.png

以上是maven编译需要的spring boot编译插件:spring-boot-maven-plugin

3.第一个Spring Boot项目之Hello World

我们创建一个控制器,编写我们的第一个Spring Boot应用,创建主控制器,编写一个restful接口测试返回Hello World到页面,控制器如下:

203351_Mjqi_2846946.png

接下来我们启动程序,如下在控制台输出启动信息:

203731_JZnI_2846946.png

从启动输出信息可以看到我们在配置文件配置的端口是80 生效的,接下来我们在浏览器验证是否能看到输出hello world信息:

203936_ommC_2846946.png

通过访问项目我们发现成功输出,并且配置的80端口和rest上下文路径也生效,第一个简单的Spring Boot应用到这就实现了。下一篇将会讲解Spring Boot+jpa实现对数据库的操作。

 

MaxBill(2017-03-10)

  

转载于:https://my.oschina.net/zss1993/blog/856587

相关文章:

  • samba部署和优化
  • OSChina 周日乱弹 ——花季少女突然离开,昨夜他们做了什么?
  • VC++开发(一)——VC++自定义注释
  • 一个典型核心网络故障分析
  • 网站优化简单探讨
  • Maven 编译时复制 resources下的文件到主输出目录
  • 面试STAR法则
  • Comparable和Comparator接口
  • 驼峰法则
  • 记忆
  • Android系统篇之—-编写简单的驱动程序并且将其编译到内核源码中【转】
  • Linux系统基础网络配置
  • 研究生flag
  • SQL基本编程,分支语句,循环语句,存储过程,触发器
  • (转)程序员技术练级攻略
  • 【技术性】Search知识
  • C# 免费离线人脸识别 2.0 Demo
  • ECS应用管理最佳实践
  • go append函数以及写入
  • javascript数组去重/查找/插入/删除
  • Ruby 2.x 源代码分析:扩展 概述
  • Spring框架之我见(三)——IOC、AOP
  • SQLServer之创建数据库快照
  • swift基础之_对象 实例方法 对象方法。
  • 基于游标的分页接口实现
  • 数组的操作
  • 限制Java线程池运行线程以及等待线程数量的策略
  • Prometheus VS InfluxDB
  • ​TypeScript都不会用,也敢说会前端?
  • #### go map 底层结构 ####
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (四) 虚拟摄像头vivi体验
  • (四)JPA - JQPL 实现增删改查
  • (一)基于IDEA的JAVA基础10
  • (转)树状数组
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 5种线程安全集合
  • .Net mvc总结
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .Net 高效开发之不可错过的实用工具
  • .net 微服务 服务保护 自动重试 Polly
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET开发者必备的11款免费工具
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .net与java建立WebService再互相调用
  • @property括号内属性讲解
  • @RequestBody与@ModelAttribute
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [android] 看博客学习hashCode()和equals()
  • [C++]:for循环for(int num : nums)
  • [c语言]小课堂 day2
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档