大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。
Java学习之Spring Boot入门
0x00 前言
学习完ssm的整合后,开始来学习Spring Boot,在前面学习Spring的时候会发现使用Spring开发中配置Spring的环境会非常的繁琐,而Spring boot的出现就解决了这个问题。
0x01 Spring Boot 概述
Spring Boot 概述概述
代码语言:javascript复制Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者
Spring Boot 特点
代码语言:javascript复制1. 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
2. 内嵌Tomcat或Jetty等Servlet容器;
3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
4. 尽可能自动配置Spring容器;
5. 提供准备好的特性,如指标、健康检查和外部化配置;
6. 绝对没有代码生成,不需要XML配置。
0x02 Spring Boot 入门
导入spring boot起步依赖坐标。
代码语言:javascript复制<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
导入web依赖
代码语言:javascript复制<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
SpringBoot要集成SpringMVC进行Controller的开发,要导入web依赖。
Spring Boot 引导类
Spring Boot 要通过Spring Boot的引导类,才能启动。
引导类代码:
代码语言:javascript复制@SpringBootApplication
//注解标注当前类是引导类
public class main {
public static void main(String[] args) {
SpringApplication.run(main.class);
}
}
访问8080端口就可以看到服务器已经启动了。
编写Controller
代码语言:javascript复制package com.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class quickController {
@RequestMapping("/quick")
@ResponseBody
public String quick(){
return "hello springboot";
}
}
0x03 Spring Boot配置
SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件。
propertie方式配置
我们在Resources目录下创建application.properties文件。
application.properties文件:
代码语言:javascript复制#配置服务器端口
server.port=8081
#配置当前应用名称
server.servlet.context-path=/demo1
yml方式配置
yml文件概述:
代码语言:javascript复制YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C , Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
YML文件的扩展名可以使用.yml或者.yaml。
yml配置文件语法:
name: xiaoming
冒号后面必须加一个空格
配置对象数据
方式一:
代码语言:javascript复制person:
name: xiaoming
age: 18
这里需要注意空格对其。
方式二:
代码语言:javascript复制person: {name: xiaoming,age: 18}
配置List 数据
方式一:
代码语言:javascript复制person:
- xiaoming
- kfc
- nc
方式二:
代码语言:javascript复制person: [xiaoming,kfc,nc]
配置集合(对象类型)
方式一:
代码语言:javascript复制student:
- name: zhangsan
age: 18
score: 100
- name: lisi
age: 28
score: 88
- name: wangwu
age: 38
score: 90
方式二:
代码语言:javascript复制person: [{name: tom,age: 18,addr: beijing},{name: xiaoming,age: 19,addr: beijing}]
0x04 配置文件映射
Value注解获取值
代码语言:javascript复制@Controller
public class QuickStartController {
@Value("${person.name}")
private String name;
@Value("${person.age}")
private Integer age;
@RequestMapping("/quick")
@ResponseBody
public String quick(){
return "springboot 访问成功! name=" name ",age=" age;
}
}
ConfigurationProperties注解获取值
代码语言:javascript复制@Controller
@ConfigurationProperties(prefix = "person")
public class QuickStartController {
private String name;
private Integer age;
@RequestMapping("/quick")
@ResponseBody
public String quick(){
return "springboot 访问成功! name=" name ",age=" age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
}
使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方法才可以。
0x05 Spring Boot 整合Mybatis
需要整合第一步肯定是要导入起步依赖和数据库驱动的坐标。
代码语言:javascript复制 <!--mybatis起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 数据库驱动坐标-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
配置完依赖后,需要在application.properties里面去配置数据库的连接信息
代码语言:javascript复制spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#spring集成Mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.test.domain
#加载Mybatis映射文件
mybatis.mapper-locations=classpath:com/test/dao/*Mapper.xml
编写一个实体类:
代码语言:javascript复制package com.test.domain;
public class User {
private String name;
private int id ;
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
编写一个dao接口:
代码语言:javascript复制@Mapper
public interface UserMapper {
List<User> query();
}
@Mapper标记该类是一个mybatis的mapper接口,可以被spring boot自动扫描到spring上下文中
配置Mapper映射文件:
代码语言:javascript复制<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.test.dao.UserMapper">
<select id="query" resultType="com.test.domain.User">
select * from user
</select>
</mapper>
最后编写controller
代码语言:javascript复制public class mybatis_controller {
@Autowired
private UserMapper userMapper;
@RequestMapping("/u")
@ResponseBody
public List<User> queryUser(){
List<User> users = userMapper.query();
return users;
}
}
0x06 结尾
和Spring 的配置相比Spring Boot的会简单不少。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119924.html原文链接:https://javaforall.cn