Spring Boot2(基本配置&特性(基础准备))
Posted HUTEROX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot2(基本配置&特性(基础准备))相关的知识,希望对你有一定的参考价值。
文章目录
Spring Boot简介
能快速创建出生产级别的Spring应用,具备整合Spring家族的脚手架!面向配置文件编程的粉碎机,快速构建项目的构建器。
前期准备
Spring基础+mybatis初识+mybatis-plus
前面本来是先上的Spring Boot发现这样搞确实不妥,MVC不搞Spring还是要搞的,玩个Mybatisplus发现后面的操作(联表)和Spring Boot 的耦合密切所以这个Boot 还是挺重要的。
环境搭建
这个如果你是使用的IDEA的话你可以直接在选项里面构建出SpringBoot项目。那么这里的话还是从构建Maven开始。
1.1 导入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
1.2创建主程序
package com.huterox.boot;
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,args);
}
}
1.3HelloWorld程序
编写响应代码
package com.huterox.boot.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//@Controller 这个就是Component
//@ResponseBody这个就是告诉它直接返回浏览器
@RestController //这个取代上面的两个注解
public class HelloController {
@RequestMapping("/hello")
public String handle01(){
return "Hello, Spring Boot 2!";
}
}
1.4测试启动
运行MainApplication
1.5项目结构预览
Spring Boot 特性
配置简化
首先是SpringBoot 提供了很多场景,这些场景其实就是以前繁琐配置的集合的封装,通过依赖传递来帮助我们实现很大程度的自动配置。
自动版本仲裁
其实这个很好理解,那就是Spring Boot 依托不同的场景集成了众多配置,自动帮我们对组件的版本进行自动配置。
其实也就是这个配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
这个是父配置,他帮我们控制了其他依赖的版本。
当然我们也可以自己修改版本,例如修改数据库驱动版本。
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<mysql.version>5.1.43</mysql.version>
</properties>
场景启动器
其实就是这个玩意
<artifactId>spring-boot-starter-parent</artifactId>
这个starter
是他帮助我们实现解放手动配置的。
自动配置(依赖打包)
这玩意可以帮助我们自动配置Tomcat,到时候直接打包成jar包运行而不是war包然后再放到Tomcat里面,这里面就会帮助我们简化很多步骤,最起码如果要部署的话是要比Django容易的,你部署一个Django应用首先要安装配置uwsgi 然后配置nginx服务器,或者是gunicorn 这里面最起码有个tomcat,我到时候直接运行jar包然后配置nginx负载均衡就好了。
这里需要先导入依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后打包成jar包即可
Config注解类
这部分内容其实还是Spring里面的玩意。但是在SpringBoot里面经常见到。从前面的那个Mybatis-plus在SpringBoot里面玩就可以看到。总体来说还不错。
那么这里补充一下昨天没写的东西
补充
这里还是补充一下Spring里面没有演示 的注解。
@Import
@Import引入普通的类可以帮助我们把普通的类定义为Bean
(通过默认的构造方法来实现)
同时也可以引入配置类,等等。
Import 的参数要求是一个Class类型的数组。
也就是你可以以下使用
@SpringBootApplication
@Import(Cat.class) // 通过@Import注解把ImportBean添加到IOC容器里面去
public class MyBatisApplication {
public static void main(String[] args) {
SpringApplication.run(MyBatisApplication.class, args);
}
}
ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
for (String beanDefinitionName : run.getBeanDefinitionNames()) {
System.out.println(beanDefinitionName);
}
这个Configuration默认是ProxyBeanMethod=ture
这个是啥意思呢,就是保证咱们的这个IOC容器里面的Bean是单例模式的。
优缺点的话还是说看你的具体的应用吧!
那么关于这边的注解的话基本的一些还是在Spring里面能找到影子的。
条件装配
@Condition
当满足什么条件就进行装配Bean或者当条件不满足时候。
实例:
@ConditionalOnBean(name = "Cat")
当容器当中有Cat这个Bean的时候我才装配。
以此类推。
@ImportResource
这个家伙的作用其实是和配置类一起使用的,它可以导入Bean.xml(resources下的配置文件)相当于把里面的内容转化成了Configuration。
@ImportResource("classpath:bean.xml")
此时里面的文件的注解生效在配置类当中。
@ConfigurationProperties
这个注解就比较厉害了,首先这个家伙读取的是SpringBoot的配置文件时properties的。
现在举个列子
定义一个飞机类
package com.huterox.boot.TEST;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "plan")
public class Plane {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Plane{" +
"name='" + name + '\\'' +
'}';
}
}
进入配置文件
写上这个
plan.name=Fly
然后进入controller
@Autowired
Plane plane;
@RequestMapping("/plane")
public Plane getPlane(){
return plane;
}
看见结果
总结
见到目前Spring Boot 的开发见到了很多Spring的影子。
至于为什么多看看Spring其实就明白了。
以上是关于Spring Boot2(基本配置&特性(基础准备))的主要内容,如果未能解决你的问题,请参考以下文章