初识Spring Boot (Spring Boot配置文件)

其实作为一个新人呢,本来应该先学习一下Spring再学习SpringBoot的,但是由于个人不懂,就先学习了一下SpringBoot。所以就先记录一下吧,以后不懂得再补充。

1.了解Spring Boot

所谓的SpringBoot就是Spring,只是Spring的使用需要大量的配置才可以,而SpringBoot则是直接提供了这些大量的默认配置,大大减少了我们java码农的工作量;只用少量的配置就可以搭建一个Spring Boot应用。

我初学用的是Spring Boot2.0.4,该版本采用 Spring5.0.8 构建,要求 JDK 至少 1.8 版本,并且 Servlet 容器要求 3.1 版本以上,也就是 tomcat8.5+ ,Jetty 9.4+,Undertow 1.4+,或者其他 3.1 版本以上 Servlet 容器。

2.Spring Boot优点

  • 使用 Spring Initializr 可以在几秒钟就配置好一个 Spring Boot 应用。
  • 对大量的框架都可以无缝集成,基本不需要配置或者很少的配置就可以运行。
  • 简化的安全性
  • 丰富的 SQL 和 NoSQL 支持
  • 嵌入式 Servlet 容器的支持,如:Tomcat,Jetty 和 Undertow
  • 提高开发、生产效率,如热部署等功能
  • 提供监控功能,如跟踪,指标和健康状况。

3.搭建第一个Spring Boot应用

环境要求:

JDK 1.8 或者更高版本、Spring Boot 2.0.4、Maven 3.2+、idea

(本人由于比较懒,jdk的下载以及环境变量的配置就不细说了,可参考:https://blog.csdn.net/whalefall/article/details/81543411

Maven的下载及环境变量配置方法可参考:https://www.cnblogs.com/platycoden/p/8313503.html;以后有时间再补充)

以前我用的开发工具呢其实是Myeclipse,但是一直有人说idea更加智能更好用,所以我也要试试,用的不太好,一起学习。

(安装激活教程可参考:https://blog.csdn.net/langyichen/article/details/90677380)

搭建:

1.直接生成Springboot模板

可以在官网https://start.spring.io/生成spring boot的模板。如图:

点击Generate下载后,解压文件夹内容为如图:

然后打开idea将生成的one文件导入:

打开idea——点击file——点击open——选择存储文件路径下的one——点击OK(稍等一会idea自动配置{idea确实很强大})即可。如图:

                                      

4. Spring Boot配置文件配置

4.1.1.Spring Boot中默认的application.properties配置文件

在上面的项目文件中,我们可以看到src/main/resource目录下面有一个application.properties配置文件(如果没有就自己按照上面项目截图新建一个),这个配置文件就是SpringBoot默认的配置文件,可以通过修改这个文件来修改SpringBoot的配置。

在修改之前,首先需要知道的就是properties文件的格式。properties文件的内容都是以键值对的形式出现键=值,例如要修改SpringBoot的端口,配写方式如下:

#端口

server.port=8080

注:

1.properties文件中的注释使用 # 开头。

2.properties文件中的每一个属性占有单独的一行。

properties中除了填写SpringBoot的配置信息外也可以自定义属性,比如在其添加:

#端口
server.port=8080
#属性
one.springboot=Hello_one

这个one.springboot就是自定义的属性,接下来就看看怎么在SpringBoot中使用:

首先在com.example.one下新建包controller,在此包下建OneController.java 文件,并修改为下面代码。

项目结构如图:

OneController.java文件代码:

package com.example.one.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
//@RestController相当于同时使用@Controller与@ResponseBody注解
public class OneController {
    /**
     *  调用src/main/resources 目录下有一个 application.properties 配置文件的自定义属性
     *  使用@Value注解注入属性值
     *  但只能访问application.propertie中的属性,其他的自定义配置文件的属性访问不到
     **/
    @Value("${one.springboot}")
    private String one;

    @RequestMapping("one")
    public String one(){
        return one;
    }
}

修改完成之后,启动项目在浏览器中输入:http://localhost:8080/one这个链接得到如下图画面,说明成功的访问了自定义的属性。

 注意:这里只能访问application.properties中的属性,如果是其他自定义的配置文件中的属性是访问不到的,还需要其他处理。

4.1.2.Spring Boot自定义配置文件配置方式

其他配置文件属性的访问:

第一步:在src/main/resources目录下建立one.properties文件,内容为:

#自定义配置文件,自定义属性
one.test=One_test

第二步:修改OneController. java文件或者再在controller目录下新建一个测试OneControllerTest. java文件(我是新建的,对比方便):

package com.example.one.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
//加载classpath目录下的one.properties文件
//@PropertySource加载指定的属性文件(自己定义的配置文件下的自定义属性)
@PropertySource(value = "classpath:one.properties")
public class OneControllerTest {
  @Value("${one.test}")
    private String onetest;

  @RequestMapping("onetest")
    public String oneTest(){
      return onetest;
  }
}

修改完成之后,再次启动项目在浏览器中输入:http://localhost:8080/onetest这个链接得到如下图画面,说明成功的访问了自定义的属性。

4.2.Spring Boot java 配置

SpringBoot除了可以使用application.properties配置之外,还可以使用java来定义配置;比如上述的修改访问端口为8088,也可以通过java代码来实现。

首先建立包com.example.one.config,在包目录下建立ServletConfig.java:

package com.example.one.config;

import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Configuration;

//@Configuration表示该类为配置类,该注解可以被@ComponentScan扫描到
@Configuration
public class ServletConfig implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
    @Override
    public void customize(ConfigurableServletWebServerFactory factory) {
        //设置端口为8088
        factory.setPort(8088);
    }
}

然后启动程序,浏览器输入http://localhost:8088/one 如果出现Hello_one或者输入http://localhost:8088/onetest 如果出现One_test;那么就说明成功的通过 java 代码修改了 SpringBoot 的配置。

注意:这是 SpringBoot2.x 通过 Java 代码修改内嵌容器端口的方式,如果是使用 SpringBoot1.x 这个方法就行不通了,SpringBoot1.x 是通过实现EmbeddedServletContainerCustomizer接口来修改。

4.3.Spring Boot xml 配置

SpringBoot已经不推荐使用xml 作为配置方式,如果一定需要使用,可以通过@ImportResource注解来完成。首先需要注释掉ServletConfig.java中的@Configuration

package com.example.one.config;

import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Configuration;

//@Configuration表示该类为配置类,该注解可以被@ComponentScan扫描到
//当使用xml文件作为配置方式时,需要先将@Configuration注释掉
//@Configuration
public class ServletConfig implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
    @Override
    public void customize(ConfigurableServletWebServerFactory factory) {
        //设置端口为8088
        factory.setPort(8088);
    }
}

然后在src/main/resources中建立xml 文件config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="servletConfig" class="com.example.one.config.ServletConfig"/>
</beans>

然后修改OneApplication.java为如下形式:

package com.example.one;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
/**
 * 当使用xml文件配置时需要通过@ImportResource加载xml配置文件
 * 添加下方代码
 */
@ImportResource (value = "classpath:config.xml")
@SpringBootApplication
public class OneApplication {

    public static void main(String[] args) {
        SpringApplication.run(OneApplication.class, args);
    }
}

然后接着重启项目,如果可以成功访问,那么说明成功导入了xml 配置。

以上就是Spring Boot的配置文件的简单应用介绍。

原文地址:https://www.cnblogs.com/lxm-wm/p/11813862.html

时间: 2024-08-05 20:20:25

初识Spring Boot (Spring Boot配置文件)的相关文章

Spring Cloud Spring Boot mybatis分布式微服务云架构(三)属性配置文件详解(1)

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用. 在之前的各篇文章中都有提及关于application.pro

Spring Boot加载配置文件的完整步骤

这篇文章主要给大家介绍了关于Spring Boot加载配置文件的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 前言 本文针对版本2.2.0.RELEASE来分析SpringBoot的配置处理源码,通过查看SpringBoot的源码来弄清楚一些常见的问题比如: SpringBoot从哪里开始加载配置文件? SpringBoot从哪些地方加载配置文件? SpringBoot是如何支持yaml和proper

Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息

spring boot以其众多友谊的特性,如零配置.微服务等,吸引了很多的粉丝.而其与Spring Security安全框架的无缝结合,使其具备的安全的特性.在此基础上使用Thymeleaf模板引擎进行渲染,静动态结合,让页面开发更加简单.直观. 通过表单提交登录的用户名和密码是登录接口比较常见的一种设计.在初学的过程中,我也不例外的采用个这种方式.表单设计见下图. 登录成功,完成正常的主页面跳转,这个不存在问题.存在问题的是,登录失败了该咋办呢?我就在考虑,由于thymeleaf的局部刷新操作

spring、spring MVC、spring Boot

Spring 是一个"引擎" Spring MVC 是基于 Spring 的一个 MVC 框架 Spring Boot 是基于 Spring4 的条件注册的一套快速开发整合包 Spring 最初利用"工厂模式"( DI )和"代理模式"( AOP )解耦应用组件 Spring 框架是一个分层架构,由 7 个定义良好的模块组成. Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式:组成 Spring 框架的每个模

Spring Cloud+Spring Boot 自学01

>>>>>>主要内容:Spring Cloud+Spring Boot初识和spring boot环境搭建 >>>>>>欢迎大家指正,发送你的问题一起讨论! 简介: Spring Cloud: Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具.它位微服务架构中涉及的配置管理. 服务治理.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态 管理等操作提供了一种简单的开发方式. Sr

如何掌握 Spring,Spring Boot 全家桶?系统学习 Spring 的大纲一份(实战教学)

搞个推荐! 资深的 Spring 工程师应该都知道 Spring 界的大牛丁雪丰.作为平安壹钱包的高级架构师之余,他不仅翻译了<Spring Boot 实战><Spring 攻略>两本书,还出了一门一揽子解决 Spring 全家桶的课程<玩转 Spring 全家桶>. 他在推荐自己的这门课程时说, 市面上有很多书和教程,但对于很多开发人员,在学习 Spring 的时候,难免会遇到这些问题: 官方文档虽然全面,但面对庞杂的知识体系,很多初学者一时不知该从哪里下手: 手册式

Sping Boot + Spring Security + Mybaits + Logback + JWT验证项目开发框架搭建

简介 本文介绍Sping Boot + Spring Security + Mybaits + Logback 项目开发框架搭建过程,并且实现JWT验证,代码已上传到github,地址在文章最后可以直接下载代码. 搭建过程 1 建立工程 工程目录如下: 2 上传至GitHub 使用Git shell 进入文件夹 添加远程仓库 上传到远程仓库 如果提示这个错误 Permission denied(publickey) 需要将本地ssh key添加到仓库 首先产生本地sshkey 将本地sshkey

spring/spring boot/spring cloud开发总结

背景        针对RPC远程调用,都在使用dubbo.dubbox等,我们也是如此.由于社区暂停维护.应对未来发展,我们准备尝试新技术(或许这时候也不算什么新技术了吧),选择使用了spring cloud架构.在此期间使用spring boot项目尝试开发,结果良好.所以想重构原spring项目至spring cloud一步一步进行,因此开发中会出现各种问题.  问题 问题总是伴随着开发一步一步显露出来,遇到问题总要去解决: spring cloud相关问题: 1.跨系统调用,传参对象接收

Spring Boot/Spring Cloud、ESB、Dubbo

如何使用Spring Boot/Spring Cloud 实现微服务应用spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud与Dubbo对比提到Dubbo,我想顺便提下ESB,目前央视新华社也在用ESB来做任务编排,这里先比较下Dubbo和ESB: ESB(企业数据总线),一般采用集中式

Angular集成Spring Boot,Spring Security,JWT和CORS

本文介绍了Spring Boot的基本配置,Angular集成Spring Boot.Spring Security的方法.当前流行的JWT更适合与Angular集成,优于Spring Secuity提供的CSRF.另外引入了springfox-swagger和spring-boot-starter-actuator,演示了如何利用Swagger生成JSON API文档,如何利用Actuator监控应用. 本文前端基于Angular官方样例Tour of Heroes,请先到官网下载. 技术堆栈