SpringBoot之旅开启
OneDay
简言
springBoot刚开始接触的第一印象是高大尚,为什么?接触新技术嘛,自然会有那种高不可攀的感觉,当初学习spring整合的时候,各种繁琐的配置文件,配置出错,满盘皆输,毕竟和spring挂钩,多多少少还有一些阴影存在,吐槽结束,回归正题!
前提概要
–
- springboot启动方式
- springboot相关注解
- springboot配置文件
- springboot案例
初期
一、maven配置
- spring-boot-starter-parent : springboot核心jar包
- spring-boot-starter-web : springboot提供web支持
- spring-boot-starter-test : springboot提供单元测试
- spirng-boot-configuration-processor : springboot配置处理核心jar包
- spring-boot-maven-plugin : springboot-maven插件
二、springboot启动方式
- springboot程序编写完成,在指定的main方法中,Run,默认端口号8080
- cmd操作,进入springboot工程目录下(包含pom.xml文件的目录),用maven指令打开,mvn spring-boot:run
- -java-jar方式打开 – 待更新
三、springboot相关注解
@Runwith : 测试运行器 -
可以指定相关的测试器进行单元测试。Ps:JUnit为单元测试提供了一个默认的测试运行器BlockJUnit4ClassRunner,但是没有限制必须使用默认的运行器。
— springRunner.Class指spring提供的Junit测试类。
@springBootTest :
对于springboot不同方式的请求测试,可以通过其注解进行单元测试,配合@Runwith注解。
@springBootApplication :
springboot程序启动入口。springboot为三大注解@Configuration,@EnableAutoConfiguration,@ComponentScan综合的统一注解。等同于@SpringBootApplication
= (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。
@ConfigurationProperties(prefix=” “) :
初期的时候,我们将一些默认初始化的参数存放到springboot的配置文件中,进行初始化赋值并依次去调用,自然这样的操作十分繁琐,对于代码的维护和更新十分不便,为此springboot提供其注解,将默认参数映射到指定的实体类中,我们只需要调用其实体类,就可以对实体类中相关的变量进行操作,大大提高了代码的维护型。
@Value(“${ }”) :
调用配置文件初始化赋值的变量
四、spirnboot配置文件
springboot配置文件专用的后缀名为yml,其配置格式易简约,具有观赏性。当然第一天所学,
把用到的配置信息陈列一下:
application.yml
- 指定访问yml文件 - application-prod.yml
spring:
profiles:
active: prod
application-prod.yml
- 可以在配置文件中,自定义初始化值
girl:
cupsize: B
girlname: xinyan
age: 18
五、springBoot案例
工程目录
1. maven导入
介绍
- springBoot 版本 1.5.6
- spring-boot-starter-thymeleaf : 模版引擎核心架包
- spring-boot-starter-data-jpa : springboot提供JPA的核心架包
- spring-boot-starter-aop : springboot提供aop的核心架包
- mysql-connector-java : mysql数据库连接的核心架包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.maven.springboot</groupId>
<artifactId>springBootDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.6.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>1.5.6.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.6.RELEASE</version>
</plugin>
</plugins>
</build>
</project>
2. 导入
介绍
- HellowController.java
- C层的相关接口,对自定义变量,不同形式传参进行测试
package org.maven.springboot.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class HellowController {
@Autowired
private org.maven.springboot.pojo.girlProperties girlProperties;
/*----------------------------------- 自定义参数使用 -------------------------------------*/
// @Value("${cupsize}")
// private String cupSize;
// @Value("${girlname}")
// private String girlname;
// @Value("${age}")
// private int age;
@RequestMapping(value = "hello",method = RequestMethod.GET)
public String HelloSay(){
return girlProperties.getCupsize();
}
/*----------------------------------- 两种不同形式的传参 -------------------------------------*/
/**
* PathVariable
* @param id int
* @return String
*/
@RequestMapping(value = "say/{id}/hello",method = RequestMethod.GET)
public int demoOne(@PathVariable Integer id){
return id;
}
/**
* RequestParam
* required : 是否需要传参
* defaultValue : 参数默认值
* @param id int
* @return String
*/
@RequestMapping(value = "say/hello",method = RequestMethod.GET)
public String demoTwo(@RequestParam(value = "id",required = false,defaultValue = "0") Integer id){
return girlProperties.getGirlname();
}
}
3.GirlApplication.java
介绍
- GirlApplication.java
- springboot启动入口
package org.maven.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GirlApplication {
public static void main(String[] args){
SpringApplication.run(GirlApplication.class,args);
}
}
4.实体类girlProperties
介绍
@Component 依赖注入
@ConfigurationProperties(prefix = “girl”) 方便操作实体类中的相关变量
package org.maven.springboot.pojo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "girl")
public class girlProperties {
private String cupsize;
private String girlname;
private int age;
public String getCupsize() {
return cupsize;
}
public void setCupsize(String cupsize) {
this.cupsize = cupsize;
}
public String getGirlname() {
return girlname;
}
public void setGirlname(String girlname) {
this.girlname = girlname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
5.yml配置文件
介绍
1.application.yml
spring:
profiles:
active: prod
2.application-prod.yml
server:
port: 8081
context-path: /demo
girl:
cupsize: F
girlname: xinyan
age: 18
以上实例为springboot的入门级demo,默认端口+地址:localhost:8081/demo/{自定义url接口},后续会更新springboot + mysql + JPA 的 相关文章….. 上传的工程目录,有些没有涉及到的是后续文章中,JPA实现数据库操作,及AOP的探索。学习之路,互利共勉,Boot小白有不足之处,希望大家多多指出,一起学习!
未完待续