SpringBoot初试牛刀

新建 Spring Boot 项目常用的两种方式
你可以通过 https://start.spring.io/ 这个网站来生成一个 Spring Boot 的项目。
你可以选择自己喜欢的依赖进行加载到项目当中。

Spring Boot 项目结构分析
成功打开项目之后,项目长下面这个样子

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

需要注意的一点是 Spring Boot 的启动类是需要最外层的,不然可能导致一些类无法被正确扫描到,导致一些奇怪的问题。 一般情况下 Spring Boot 项目结构类似下面这样
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
| +- config
| +- swagerConfig.java
|
Application.java是项目的启动类
domain目录主要用于实体(Entity)与数据访问层(Repository)
service 层主要是业务类代码
controller 负责页面访问控制
config 目录主要放一些配置类
@SpringBootApplication 注解分析
HelloWorldApplication

@SpringBootApplication
public class HelloWorldApplication {

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

}
说到 Spring Boot 启动类就不得不介绍一下 @SpringBootApplication 注解了,这个注解的相关代码如下:

package org.springframework.boot.autoconfigure;
@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 {
......
}
package org.springframework.boot;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}
可以看出大概可以把 @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 [email protected]= @RestController。对于这两个注解,我在基础篇单独抽了一篇文章来介绍。

com.example.helloworld.controller

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("test")
public class HelloWorldController {
@GetMapping("hello")
public String sayHello() {
return "Hello World";
}
}
默认情况下,Spring Boot 项目会使用 8080 作为项目的端口号。如果我们修改端口号的话,非常简单,直接修改

application.properties配置文件即可。

src/main/resources/application.properties

server.port=8333
大功告成,运行项目
运行 HelloWorldApplication ,运行成功控制台会打印出一些消息,不要忽略这些消息,它里面会有一些比较有用的信息。

2019-10-03 09:24:47.757 INFO 26326 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8333 (http) with context path ‘‘
上面是我截取的一段控制台打印出的内容,通过这段内容我们就知道了 Spring Boot 默认使用的 Tomact 内置 web 服务器,项目被运行在我们指定的 8333 端口上,并且项目根上下文路径是 "/"。

浏览器 http://localhost:8333/test/hello 如果你可以在页面正确得到 "Hello World" 的话,说明你已经成功完成了这部分内容。

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

原文地址:https://www.cnblogs.com/zfyer/p/12290130.html

时间: 2024-10-15 00:19:25

SpringBoot初试牛刀的相关文章

搜索引擎--范例:django之初试牛刀

这学期学了一门课<信息检索>,也就是传说中的搜索引擎 大作业自然而然的让我们自己做一个小型的搜索引擎.于是乎,我们本次的主题就诞生了 我也是边学边用,下面和大家一起分享我在这个过程中学到的东西,说的不对的请大家指正 这是我的成果搜索引擎--范例,大家可以点进去看看,点此下载所有文件盒源代码 按照流程,下面我给大家分享的依次是: 1:SAE创建新应用,SVN管理代码 2:新浪微博API获取最近的微博 3:中文分词算法的实现 4:谈谈django--mysql数据库的一些常用命令 搜索引擎--范例

Sublime Text 3 初试牛刀

每次我在其他视频网站上看学习视频的时候,看着老师用的编辑器高大上档次,而我一般用Notepad,和Dreamweaver去编辑网页,需要每一行代码,打进去,效率低.最近看到sublime编辑器,在网上搜了一下说是最受欢迎的,就毫不犹豫的下载下来,初试牛刀一下下,把我搜索的功能和与前端浏览器交互的插件简答介绍一下.前端实时可视化开发工具:LiveStyle 支持样式文件的修改,也可以在浏览器端编辑样式代码,会自动更新到你的样式表中. 浏览器端: 下载一个chrome浏览器,在 chrome网上应用

OpenCV 初试牛刀——显示图像

作者 : 卿笃军 示例:从磁盘加载并在屏幕上显示一幅图像. #include "highgui.h" int main() { IplImage *img = cvLoadImage("1.jpg"); //将图像加载至内存 cvNamedWindow("初试牛刀--显示图像",CV_WINDOW_AUTOSIZE);//创建一个窗口 cvShowImage("初试牛刀--显示图像",img); //显示图像 cvWaitKe

PyQt4 初试牛刀二

一.最小话托盘后,调用showNormal()后窗口不刷新,解决办法如下: 重写showNormal 方法,调用父类方法后,repaint窗体 def showNormal(self):     super(LcdTime, self).showNormal()     self.repaint() 二.透明显示窗口后无法拖动窗体: 必须拖动非透明区域,比如数字,目前没有找到好的解决方案. # -*- coding: utf-8 -*- import sys from PyQt4 import 

初试牛刀:实时天气WebService

1.引入WebService:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 2.声明接口→界面获取值传入接口→接口返回值处理→输入 public string sWeatherHTML = ""; protected void Button1_Click(object sender, EventArgs e) { string txtCity=TextBox1.Text; cn.com.webxml.www.We

matlab初试牛刀__小练习

% T1 % 不妨设 h=2 D=1 clear,clc; h=2;D=1; x=-2*D:0.01:2*D; y=h*(x>D)+h/D.*x.*(abs(x)<=D)-h*(x<-D); % T_2 clear,clc; %用 cumsum函数 % A = (0:63); % B = cumsum(2.^A); % S = B(64) %用for循环 % clear,clc % s=0; % for i=0:63 % s = s+2.^i; % end % s %用sum函数 cle

u-boot,初试牛刀

手里拿到的uboot是uboot-2012,整个目录和之前的1.3.4没什么太大变化.但是系统启动初始化的流程,以及一些接口函数的定义变化了许多.以及初始化make的流程也变化,另外在nand的ecc校验算法增加了bch校验. 第一步,编译 linux下的编译,基本都是借用了Makefile和脚本以及链接文件协同合作,最后搞出来一个bin. 编译uboot也无外乎这样.只是稍微有些不同. 啥也不懂,啥也不知道怎么办? 那么make help 下吧,不识路,先问路. #make help Clea

openerp 初试牛刀 --项目开发重点 1

刚开始接触openerp的人肯定无从下手.实际上 你只要明白其中运行的大概原理 你便会使用它了. 首先我们看下 一般的目录结构: 对与英文不好的朋友 小编我也是免为其难的翻译下喽: addons/ |~idea/                   #这是模块的目录 |~demo/         #演示和单元测试的人口数据 |~il8n/              #字段翻译 |~report/ #报告定义 |~security /       #组织和访问权限的宣言 |~view/   #视

NLP初试牛刀,NLTK入门第一篇

之前下载过一个PDF,书名是<用python进行自然语言处理>,挺有意思的,加上NLP和机器学习目前大热,想趁着暑假涉猎一下.于是开始了入门NLP之旅. 安装环境:Ubuntu14.04桌面版,python版本:2.7 第一步:安装nltk,首先要安装pip工具:sudo apt-get install python-pip,安装完成后用pip安装nltk:sudo pip install python-nltk. 第二步:下载nltk所有的包,在终端中进入python的交互模式, >&