本文正在参加「金石计划 . 瓜分6万现金大奖」
前言
最近在学习springboot框架的基本知识,相信大家对于Springboot一定不陌生了这里就简单说一下:Spring框架是java平台上的一种开源应用框架,提供具有控制反转特性的容器,也是现在比较流行的框架,官方文档如下:
本文就个人在学习Spring环境配置过程中遇到的问题以及环境配置的解决方法做了一下回顾,希望能帮助到有需要的朋友们。
HelloWorld
首先看我们如何配置一个简单的依赖文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.2</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!--若想打成jar包,需要加上下边插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.2</version>
</plugin>
</plugins>
</build>
配置完依赖我们启动程序
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class);
}
}
控制器的配置如下
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "Hello,SpringBoot2";
}
}
此时就可以直接运行了,若想设置端口可以添加配置文件application.properties 官方文档
server.port=8888
配置文件
需要深入的小伙伴可以参考以下文档:
下面就讲一讲基本的配置文件:
基础配置
# 服务器端口配置
server.port=80
# 修改banner
# spring.main.banner-mode=off
# spring.banner.image.location=logo.png
# 日志
logging.level.root=info
配置文件优先级
关于配置文件的优先级问题可以参考下面的例子:
application.properties > application.yml > application.yaml
yaml配置文件
一个简单的配置例子如下:
server:
servlet:
context-path: /hello #设置servlet路径
port: 82
country: china
port: 8080
user1:
name: Sentiment
age: 20
users:
- name: Sentiemnt
age: 21
- name: Shelter
age: 22
likes:
- game
- music
- sleep
测试
配置完所有的数据后我们可以查看一下运行的结果,可以看到成功进行了赋值:
属性引用
对于如何引用属性,我们可以通过${属性名}的方式引用定义的属性
yaml
baseDir: c:\windows
dateDir: ${baseDir}\date
测试
我们构建一个测试文件如下:
@Value("${dateDir}")
private String dateDir;
@RequestMapping("/hello")
public String hello(){
System.out.println("dateDir==>"+dateDir);
return "Hello,SpringBoot2";
}
输出结果:
dateDir==>c:\windows\date
读取全部属性数据
通过Environment类型数据,并集合getProperty即可
@Autowired
private Environment env;
@RequestMapping("/hello")
public String hello(){
System.out.println("env==>"+env.getProperty("user1.name"));
}
将数据封装到类中
yml配置文件
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/Mybatis
driver: com.mysql.cj.jdbc.Driver
yml配置文件对应的类
需要通过@ConfigurationProperties("datasource")来获取配置文件的属性
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties("datasource")
public class MydataSource {
private String username;
private String password;
private String url;
private String driver;
}
定义mydataSource类的数据并输出
@Autowired
private MydataSource mydataSource;
@RequestMapping("/hello")
public String hello(){
System.out.println("MydataSource==>"+mydataSource);
return "Hello,SpringBoot2";
}
结果:
MydataSource==>MydataSource(username=root, password=123456, url=jdbc:mysql://localhost:3306/Mybatis, driver=com.mysql.cj.jdbc.Driver)
整合mybatis
下面给大家举一个如何整合mybatis的简单例子:
之后我们来设置我们需要的配置文件:
yml配置文件
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/Mybatis
driver-class-name: com.mysql.jdbc.Driver
pojo
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int uid;
private String uname;
private int uage;
}
Dao
@Mapper
public interface UserDao {
@Select("select * from users where uid = #{uid}")
public User getById(int uid);
}
测试类
@SpringBootTest
class SpringBootMybatisApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
System.out.println(userDao.getById(1));
}
}
之后运行就可以了输出内容了,上面就是一个简单的整合mybatis的例子。
结语
本文就个人在学习过程中遇到的配置问题做了一个总结,上面的内容可能存在一个误差,希望大佬们可以指出,同时希望能帮助到有需求的小伙伴们,如果喜欢本文不妨一键三连。