2020-12-18

springBoot学习

1.创建一个maven工程

2.导入springboot依赖

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.6.RELEASE</version>

<relativePath/><!-- lookup parent from repository -->

</parent>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

3.建一个启动主程序

@SpringBootApplicationpublicclassHelloWorldSpringbootApplication{

public static void main(String[]args){

SpringApplication.run(HelloWorldSpringbootApplication.class,args);

}}

4.编写相关的Controller,service

@Controller

public clas sMainController{

@ResponseBody

@RequestMapping("/hello")

publicStringhelloWorld(){

return"hello world quick";

}}

5.运行主程序测试结果

localhost:8080/hello

6.自动部署

(1)pom.xml引入插件

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<configuration>

<!--fork :  如果没有该项配置,肯定devtools不会起作用,即应用不会 restart  这个要手动加进去 --><fork>true</fork>

</configuration>

</plugin>

</plugins></build>

(2)打jar包(在侧边栏的maven->lifeCycle->package(双击))

(3)找到jar包

(4)就可以在cmd通过 命令java -jar jar包名 来运行了(与运行主程序是一样的结果)

7.helloWorld研究

(1)POM文件

父项目:

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.6.RELEASE</version>

<relativePath/><!-- lookup parent from repository -->

</parent>

他的父项目是:

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-dependencies</artifactId>

<version>2.0.6.RELEASE</version>

<relativePath>../../spring-boot-dependencies</relativePath>

</parent>

他来真正管理SpringBoot应用里面所有的依赖版本

所以说,他是SpringBoot的版本仲裁中心:

我们以后在导入依赖的时候,是不需要写版本号的(没有在其中声明版本号的,需要自行声明)。

导入的依赖:

spring-boot-starter-web

spring-boot-starter 是springboot的场景启动器,-web则是导入web模块正常运行所需要的依赖。

springboot将所有的功能场景都抽取出来,做成一个个的starter(启动器),我们在应用中需要什么场景的启动器,那么我们就导入对应的starter,那么该场景依赖的所有依赖也都会导入进来。

(2)主程序类、主入口类

@SpringBootApplicationpublicclassHelloWorldSpringbootApplication{publicstaticvoidmain(String[]args){SpringApplication.run(HelloWorldSpringbootApplication.class,args);}}

这里的注解@SpringBootApplication,有了这个注解,才可以正常的调用run方法来启动应用。

@SpringBootApplication:这个注解标注在哪个类上,说明这个类则是springboot应用的主配置类,springboot就应该运行这个类的main方法来启动springboot应用。

@SpringBootApplication:这是一个组合注解

@SpringBootConfiguration:这是一个SpringBoot的配置注解

这个注解标注在某个类上,就表示这是一个springBoot的配置类

点进@SpringBootConfiguration,你会发现他也是组合注解,其中@Configuration是spring底层的配置类注解

@Configuration:这个表示配置类----配置文件(对应),配置类也是容器中的组件

@EnableAutoConfiguration:开启自动配置

以前需要我们自动配置的东西,现在springboot帮我们自动配置,@EnableAutoConfiguration告诉springboot开启自动配置。

点进@SpringBootConfiguration,有一个@AutoConfigurationPackage(自动配置包)注解,点进,你会发现@Import({Registrar.class})有这么一个注解,这也是spring底层的注解,给容器导入组件,由他来指定该导入哪些组件。

@AutoConfigurationPackage:将主配置类所在包及所有子包下面的所有组件扫描到spring容器中

@Import({AutoConfigurationImportSelector.class}):给容器中导入组件

AutoConfigurationImportSelector:导入哪些组件的选择器

将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到组件中。

会给容器中导入好多的自动配置类(xxxAutoConfiguration),就是给容器中导入这个场景需要的所有组件,并配置好这些组件。

注:ResponseBody这个注解是把方法返回的结果直接写给数据库(如果是对象转为json数据)

8.使用Spring Initializer创建Spring Boot项目

选择我们需要的模块,联网来生成SpringBoot项目:

生成的springBoot项目:

主程序已经生成好了,只需要我们自己来创建逻辑

其中resources文件夹:

static:存放所有的静态资源js,css,images;

templates:存放所有的模版资源,springBoot默认jar包使用嵌入式的tomcat,不支持jsp页面;

application.properties:是springBoot应用的配置文件,可以用来修改一些默认设置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容