博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 学习笔记(二)第一个 Spring boot 程序
阅读量:5013 次
发布时间:2019-06-12

本文共 6048 字,大约阅读时间需要 20 分钟。

 

SpringBoot程序创建方式

 1、创建一个Spring boot项目

     1) 可以采用方式一: 使用 eclipse 的 Spring Tool Suite (STS) 插件/或者 IDEA 自带的插件创建;

     2) 可以采用方式二:直接使用 Maven 创建项目的方式创建;

 

2、加入Spring boot 的父级和起步依赖;

插件方式创建有自带pom.xml,如果手动要自己添加。

1 
2
4
4.0.0
5
6
7
org.springframework.boot
8
spring-boot-starter-parent
9
2.1.1.RELEASE
10
11
12 13
14
com.example
15
springboot-web
16
0.0.1-SNAPSHOT
17
springboot-web
18
Demo project for Spring Boot
19 20
21
22
1.8
23
24 25
26
27
28
org.springframework.boot
29
spring-boot-starter-web
30
31 32
33
34
org.springframework.boot
35
spring-boot-starter-test
36
test
37
38
39 40
41
42
43
44
org.springframework.boot
45
spring-boot-maven-plugin
46
47
48
49 50

 

3、创建Spring boot 的入口main方法

 

4、创建一个Spring mvc 的Controller

1 package com.example.springbootweb.controller; 2  3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.ResponseBody; 6  7 @Controller 8 public class HelloController { 9     @RequestMapping("/boot/hello")10     public @ResponseBody String hello()11     {12         return "hello spring boot";13     }14 }

 

5、运行Spring boot的入口main方法

通过eclipse、idea右键运行main方法,浏览器访问http://localhost:8080/boot/hello,页面显示 hello spring boot

 

SpringBoot程序开发流程解析

1、Spring Boot 的父级依赖spring-boot-starter-parent配置之后,当前的项目就是Spring Boot项目。

2、spring-boot-starter-parent是一个特殊的starter依赖,它用来提供相关的Maven默认依赖,使用它之后,常用的jar包依赖可以省去version配置。

3、Spring Boot提供了哪些默认jar包的依赖,可查看该父级依赖的pom文件。

4、如果不想使用某个默认的依赖版本,可以通过pom.xml文件的属性配置覆盖各个依赖项,比如覆盖Spring版本:

5.0.0.RELEASE

5、@SpringBootApplication 注解是Spring Boot项目的核心注解,主要作用是开启Spring自动配置。至少要是同级或者是下级的类,不然就扫描不到了。

6、main方法是一个标准的Java程序的main方法,主要作用是作为项目启动运行的入口。

7、@Controller 及 @ResponseBody 依然是我们之前的Spring mvc,因为Spring boot的里面依然是使用我们的Spring mvc + Spring + MyBatis 等框架。

 

Spring boot 的核心配置文件

Spring boot的核心配置文件用于配置Spring boot程序,有两种格式的配置文件:

 1、.properties文件 application.properties 

两个都存在优先识别properties

#配置服务器端口server.port=9800#项目访问上下文 server.servlet.context-path=/springboot-web

http://localhost:9800/springboot-web/boot/hello

 

2、.yml文件 application.yml

yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。

yaml 是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比 xml 简洁很多。

值与前面的冒号配置项必须要有一个空格。

yml 后缀也可以使用 yaml 后缀。

server:  port: 9091  servlet:    context-path: /springboot-web #配置应用访问路径

 

3、多环境配置文件

有如下几个文件

application-dev.properties #比如配置测试环境

application-product.properties #比如配置生产环境

application.properties #激活的总文件,如果总文件也有相同配置以激活文件里配置优先。

#激活文件 约定成俗 application-dev.propertiesspring.profiles.active=dev

 

Spring boot 自定义配置

1、@Value注解 自定义配置文件读取

application.properties

#配置服务器端口server.port=9800#项目访问上下文server.servlet.context-path=/springboot-web#自定义配置boot.name=Goosanderboot.location=博客园
ConfigInfoController.java
package com.example.springbootweb.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class ConfigInfoController {    @Value("${boot.name}")    private String name;    @Value("${boot.location}")    private String location;    @RequestMapping("/boot/config")    public @ResponseBody    String configInfo() {        String str = name + location;        return str;    }}

访问http://localhost:9800/springboot-web/boot/config 显示Goosander博客园

!如果发现乱码,应该是编辑器GBK和srping boot 编码不一致导致,修改idea配置

2、@ConfigurationProperties 自定义配置文件映射

新建config文件用来放ConfigInfo.java

1 package com.example.springbootweb.config; 2  3 import org.springframework.boot.context.properties.ConfigurationProperties; 4 import org.springframework.stereotype.Component; 5  6 @Component //变成Spring的一个组件 7 @ConfigurationProperties(prefix = "boot") 8 public class ConfigInfo { 9     private String name;10     private String location;11 12     public String getName() {13         return name;14     }15 16     public void setName(String name) {17         this.name = name;18     }19 20     public String getLocation() {21         return location;22     }23 24     public void setLocation(String location) {25         this.location = location;26     }27 }
@ConfigurationProperties 需要引用jar包
org.springframework.boot
spring-boot-configuration-processor
true
ConfigInfoController.java
1 package com.example.springbootweb.controller; 2  3 import com.example.springbootweb.config.ConfigInfo; 4 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.stereotype.Controller; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.ResponseBody; 8  9 @Controller10 public class ConfigInfoController {11 12 13     @Autowired //注入组件14     private ConfigInfo configInfo;15 16 17     @RequestMapping("/boot/config")18     public @ResponseBody19     String configInfo() {20         String str = configInfo.getName() + configInfo.getLocation();21         return str;22     }23 }

 

转载于:https://www.cnblogs.com/lilb/p/10245904.html

你可能感兴趣的文章
团队个人冲刺第三天
查看>>
unit
查看>>
2017-10-17 NOIP模拟赛2
查看>>
How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
查看>>
ACM/ICPC 之 模拟 (HNUOJ 13391-换瓶模拟)
查看>>
JavaWeb学习——JSP基础
查看>>
Eclipse tomcat server 无法添加项目
查看>>
黑寡妇黄飞鸿
查看>>
leetcode 217 Contains Duplicate 数组中是否有重复的数字
查看>>
The Ctrl & CapsLock `problem'
查看>>
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
查看>>
linux故障判断
查看>>
Leetcode 23. Merge k Sorted Lists(python)
查看>>
Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
查看>>
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>