Spring Boot 学习与应用

特性

  1. 能够快速创建基于spring的应用程序
  2. 能够直接使用 java main方法启动内嵌的Tomcat,Jetty服务器运行Spring Boot程序,不需要部署war包文件
  3. 提供约定的starter POM来简化Maven配置,让Maven的配置变得简单
  4. 根据项目的Maven依赖配置,Spring Boot自动配置Spring 、Spring MVC等
  5. 提供了程序的健康检查等功能
  6. 简化配置,基本可以完全不使用XML文件,采用注解配置

四大核心

  1. 自动配置:
    针对很多Spring应用程序和常见的应用功能,Spring Boot能自动提供相关的配置
  2. 起步依赖:
    告诉Spring Boot需要什么功能,它就能引入需要的依赖库
  3. Actuator(健康检查):
    让你能够深入运行中的Spring Boot应用程序,可以查看Spring Boot程序的内部信息
  4. 命令行界面:
    这是Spring Boot的可选特性,主要针对Groovy语言使用
    Groovy语言是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多比较强大的特性,Groovy代码能够与Java代码很好的结合,也能用于扩展现有代码,Gorrvy也可以使用其它Java语言编写的库

Spring Boot开发环境

  1. 1.xxx的版本适用于Java6或7 , 2.xxx的版本要求最少是Java8
  2. 如果用Eclipse 推荐安装Spring Tool Suite(STS)插件
  3. Maven推荐使用3.0+

项目创建注意

pom.xml文件解说

  • 如果创建Spring Boot项目,在pom.xml文件里要有个父级依赖
    在这里插入图片描述
    标注Spring Boot版本号
    提供相关的Maven默认依赖,常用的jar包依赖可以省去version配置
    如果不想使用spring boot提供的版本,可用version替换
  • dependencies标签是项目的jar依赖
  • properties标签是Maven属性配置
  • build标签下
    • plugins标签是配置插件的
      会默认配置一个spring Boot项目编译打包插件,由spring boot提供
         <plugins>
      
             <!--SpringBoot项目编译打包插件-->
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
      
             <!--编译插件-->
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <!--插件版本-->
                 <version>3.5.1</version>
                 <!--编译级别-->
                 <configuration>
                     <source>1.8</source>
                     <target>1.8</target>
                     <!--编码格式-->
                     <encoding>UTF-8</encoding>
                 </configuration>
             </plugin>
         </plugins>
      
    • resources标签配置资源路径,解决资源文件找不到的问题
      	<resource>
      		<directory>${basedir}/src/test/java</directory>
      		<includes>
      			<include>**/*.properties</include>
      			<include>**/*.xml</include>
      			<include>**/*.pdf</include>
                  <include>**/*.yml</include>
                  <include>**/*.tld</include>
                  <include>**/*.ktr</include>
                  <include>**/*.jar</include>
                  <include>**/*.dll</include>
                  <include>**/*.html</include>
                  <include>**/*.png</include>
      		</includes>
      	</resource>
      	<resource>
      		<directory>${basedir}/src/main/resources</directory>
      	</resource>
      

热部署插件

插件为:spring-boot-devtools,
在pom.xml中加入依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
	<optional>true</optional>
</dependency>

注解

  • @SpringBootApplication是Spring Boot项目的核心注解,开启Spring自动配置,一般是放在Spring Boot项目入口的main方法所在的类上
    SpringApplication.run(Application.class, args);此方法返回的是spring容器对象,可以写成
    ApplicationContext context = SpringApplication.run(Application.class, args);

    纯java项目时
    • 可以用容器来获取业务类
      在这里插入图片描述
    • 也可以实现CommandLineRunner类中的run方法
      在这里插入图片描述

日志输出图标

在启动入口处操作

  • 关闭
    	SpringApplication springApplication= new SpringApplication(Application.class);
    	//关闭logo日志的输出
    	springApplication.setBannerMode(Banner.Mode.OFF);
    	springApplication.run(args);
    
  • 修改输出图标
    在resources放入一个banner.txt文件
    logo日志图标生成网址
    将生成的图标文字粘贴到banner.txt文件里
    	SpringApplication springApplication= new SpringApplication(Application.class);
    	springApplication.run(args);
    
  • @RestController
    spring4 之后新增的注解,它可以写成@ResponseBody和@Controller两个,用于返回字符串或json数据

核心配置文件

配置文件有两种格式,一种是.properties文件(键值对的配置方式), 一种是.yml文件(yaml格式,采用一定的空格、换行等格式排版进行配置,值与前面的冒号配置项必须要有一个空格)
如果两种格式的文件都存在,则优先读取.properties文件

  • .properties文件

    #激活dev配置文件(文件名application-dev.properties)
    spring.profiles.active=dev
    #启动的服务器端口
    server.port=8080
    #配置项目访问的上下文根路径  http://localhost:8080/project
    server.servlet.context-path=/project
    #引入redis配置文件
    spring.profiles.include=redis
    
  • .yml文件

    server:
    	port: 9090
    	servlet:
    		context-path: /project
    spring:
    	profiles:
    	  active: dev
    	  
    

自定义配置文件

在核心配置文件中自定义配置,采用以下方式读取属性值:

  1. @Value
    用于逐个读取自定义的配置(在实体类的属性上加上相应的注解,在类上加入读取指定的配置文件@PropertySource(value = “classpath:email.properties”);如果是在激活的配置文件中读取,直接用占位符即可)

    @Value("${mail_host}")
    private String mailHost;
    
  2. @ConfigurationProperties
    用于将整个文件映射成一个对象
    dev.properties文件自定义内容

    email.host=app-smtp-exchange-test.hk.hsbc:25
    
    /**
    *prefix是配置文件中属性的前缀
    */
    @Component
    @ConfigurationProperties(prefix="email")
    public class ProrertiesValue{
    	private String host;
    	
    	public String getHost(){
    		return host;
    	}
    	public void setHost(String host){
    		this.host=host;
    	}
    }
    

整合jsp

  • 需要在application.properties配置文件中配置mvc的jsp视图展示
#前缀
spring.mvc.view.prefix=/
#后缀
spring.mvc.view.suffix=.jsp
  • 在pom.xml文件中的build加上资源路径
    <resources>
    	<resource>
    		<directory>${basedir}/src/test/java</directory>
    		<includes>
    			<include>**/*.properties</include>
    			<include>**/*.xml</include>
    			<include>**/*.pdf</include>
                      <include>**/*.yml</include>
                      <include>**/*.tld</include>
                      <include>**/*.ktr</include>
                      <include>**/*.jar</include>
                      <include>**/*.dll</include>
                      <include>**/*.html</include>
                      <include>**/*.png</include>
    		</includes>
    	</resource>
    	<resource>
    		<directory>${basedir}/src/main/resources</directory>
    	</resource>
    </resources>
    
发布了9 篇原创文章 · 获赞 11 · 访问量 406

猜你喜欢

转载自blog.csdn.net/qq_41681399/article/details/105371366