最近我花了比较多的时间学习Spring Boot,也自己动手实现了一个Spring Boot的小项目,写下一点自己的学习体会和感悟。
Spring Boot 框架的基本介绍
Spring Boot是Spring公司设计的一个框架, 其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
此框架的特点有以下几点:
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成并且对XML也没有配置要求
Spring Boot框架的特点
通过自己上手的实际操作,我发现Spring Boot这个框架确实很好用,之前我曾经学过SSM框架,和HAP框架,Spring Boot比以前学的框架都要方便使用。
1.Spring Boot不需要配置tomcat,直接生成一个jar包,点击这个jar包就可以运行项目。(打包生成的jar包)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
导入这个插件,可以将项目直接打成Jar包,然后用java -jar的命令执行
2.新建Spring Boot项目很简单
要创建一个Spring Boot应用,只需以下几步:
1.创建一个Maven工程
2.导入Spring Boot的相关依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
3.编写主程序
@SpringBootApplication
public class SpringBoot01HelloQuickApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot01HelloQuickApplication.class, args);
}
}
4.编写相应的Controller和Service
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "hello world";
}
}
5.测试项目是否运行
访问 localhost:8080/hello
3.Spring Boot可以不配置XML就操作数据库
@Mapper
public interface CustomerMapper {
@Select("select * from customer where first_name=#{firstName} and last_name=#{lastName}")
List<Customer> Login(@Param("firstName") String firstName, @Param("lastName") String lastName);
@Select("select * from customer e LEFT JOIN address d ON e.address_id = d.address_id")
List<Customer> FindAllList();
@Select("select * from address")
List<Address> FindAddress();
@Insert("insert into customer(store_id, first_name,last_name,email,address_id,active,create_date,last_update) " +
"values(1, #{firstName},#{lastName},#{email},#{addId},1,NOW(),NOW())")
int insert(@Param("firstName") String firstName, @Param("lastName") String lastName, @Param("email") String email, @Param("addId") int addId);
@Update("update customer set first_name = #{firstName}, last_name = #{lastName} ,email=#{email},address_id=#{addId} where customer_id = #{cutId}")
int updateConstomer(@Param("firstName") String firstName, @Param("lastName") String lastName, @Param("email") String email, @Param("addId") int addId
,@Param("cutId") int cutId);
@Delete("delete from customer where customer_id = #{id}")
int deleteCustomer(@Param("id") Integer id);
}
例如可以使用注解的方式直接写sql语句操作数据库,只需要DTO实体类里面的属性和mysql数据库中的字段值能对应上就行。
4.Spring Boot的YAML语法
YAML这种语言我之前学习猪齿鱼微服务的时候接触过,是一种对空格特别敏感的语言。
以前的配置文件;大多数使用的是 xxx.xml文件,YAML以数据为中心,比json、xml等更适合做配置文件。
YAML:配置例子
server:
port: 9000
XML:
<server>
<port>9000</port>
</server>
YAML基本语法
k:(空格)v:表示一堆键值对(空格必须有),以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一层级的,属性和值也是大小写敏感
server:
port: 9000
path: /hello
值的写法
字面量:普通的值(数字,字符串,布尔)k: v:字面直接来写,字符串默认不用加上单引号或者双引号"":双引号 不会转义字符串里的特殊字符;特殊字符会作为本身想要表示的意思
name:"zhangsan\n lisi" 输出:zhangsan换行 lisi
‘’:单引号 会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name:'zhangsan\n lisi' 输出:zhangsan\n lisi
对象、Map(属性和值)键值对
k :v :在下一行来写对象的属性和值的关系;注意空格控制缩进
对象还是k:v的方式
frends:
lastName: zhangsan
age: 20
行内写法
friends: {lastName: zhangsan,age: 18}
数组(List、Set): 用-表示数组中的一个元素
pets:
‐ cat
‐ dog
‐ pig
行内写法
pets: [cat,dog,pig]
以上就是我学习Spring Boot的一些笔记,需要对Spring Boot这个框架有更深入的了解,还是需要自己动手实际做项目才行