1. Spring Initializr 部署框架
1.1 选择Spring Initializr
注意,如果上述 Server URL 的地址为官网 start.spring.io 时速度很慢,可以选择将其更换为 start.aliyun.com 。
1.2 选择版本并创建模板
1.3 测试并启动
创建一个 controller 包来编写控制器,控制器类文件 HelloController.java 中的内容如下:
@RestController
public class HelloController {
@RequestMapping("/hello2")
public String hello(String name){
return "hello springboot2!!!";
}
}
注意,创建的 controller 包应该与启动类文件同级,否则 springboot 扫描不到相应的文件。
SpringBoot中内置有 Tomcat,所以不必另外配置 Tomcat服务,直接访问网址 http://localhost:8080/hello2 就能看到打印出的 hello springboot2!!! 。
@RestController 注解相当于 @controller 和 @ResponseBody 的结合. @Controller 将当前修饰的类注入SpringBoot Ioc容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。 @ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端。
2. 全局配置
使用骨架创建了SpringBoot项目后,在 resource 目录下就有一个名为 application.properties 的配置文件,该配置文件可以加载SpringBoot的一些配置信息。
2.1 yml文件
默认得到的配置文件是 properties 文件,但是推荐使用 yml 文件,即将文件名改为 application.yml 。
- 语言格式
yml语言每一级采用两个空格来区分,注意,冒号后面有一个空格,如下:
server:
port: 82
表示server下的port设置为82端口。
- 字面量
key: value :字?直接来写; "" :双引号;会转义字符串??的特殊字符;特殊字符会作为本身想表示的意思; '' :单引号;不会转义特殊字符,特殊字符最终只是?个普通的字符串数据。 如 "1 \n 2" 与 ‘1 \n 2’ 表达式不同的,前者会被转义为换行符,后者原样输出。 - 对象
key: value:在下??来写对象的属性和值的关系,需要进?缩进,如下:
friends:
lastName: zhangsan
age: 20
?内写法:
friends: {lastName: zhangsan,age: 18}
pets:
- cat
- dog
- pig
数组?内写法:
pets: [cat,dog,pig]
2.2 逐个读取配置文件数据
2.3 读取全部配置文件
读取单?数据可以解决读取数据的问题,但是如果定义的数据量过?,这么?个?个书写肯定会累死?的,SpringBoot提供了?个对象,能够把所有的数据都封装到这?个对象中,这个对象叫做Environment,使??动装配注解可以将所有的yaml数据封装到这个对象中。
配置文件中的内容如下所示:
person:
name: zhangsan
age: 20
hobbies:
- basketball
- volleyball
控制器中的内容如下所示:
@RestController
public class HelloController {
@Autowired
private Environment environment;
@RequestMapping("/hello2")
public String hello(){
System.out.println(environment.getProperty("person.name"));
System.out.println(environment.getProperty("hobbies[0]"));
return "hello Spring Boot";
}
}
采用这种方法也能获得配置文件中的数据。
3. 常用注解
@Configuration :声明?个类作为配置类@Bean :声明在?法上,将?法的返回值加?Bean容器@Value :属性注?@ConfigurationProperties(prefix = "jdbc") :批量属性注?,在类前进行注解,prefix 参数表示其是配置文件的哪个对象。
为了展示以上注解的使用与功能,现进行如下操作。
3.1 新建实例类
首先导入 lombok 依赖。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
在 beans 包下新建一个 Book 类来进行实验。
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Book {
private String book_name;
private int book_id;
private String book_author;
}
再新建一个 Car 类来进行实验。
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Car {
private String car_name;
private int car_id;
private String car_owner;
}
3.2 新建配置类
新建一个配置类 Test1.java ,在里面写上内容如下:
@Configuration
public class Test1 {
@Bean(name = "book")
public Book book_bean(){
Book book = new Book("福尔摩斯", 11, "柯南道尔");
return book;
}
@Bean(name = "car")
public Car car_bean(){
Car car = new Car("宝马", 10086, "华生");
return car;
}
}
上述内容中的 @Configuration 就相当于是Spring中的xml配置文件,其中的每个 @Bean 注解就相当于是在 xml 配置文件中配置的一个 bean 。
3.3 测试
在 HelloController.java 文件中进行如下测试:
@RestController
public class HelloController {
@RequestMapping("/hello2")
public String hello(){
ApplicationContext context = new AnnotationConfigApplicationContext(Test1.class);
Car car = (Car)context.getBean("car");
Book book = (Book) context.getBean("book");
System.out.println(car);
System.out.println(book);
return "hello Spring Boot";
}
}
其能够将创建的实例输出,代表我们实验成功。
|