首页 > 其他分享 >Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建对象(@ConfigurationProperties、@Value)

Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建对象(@ConfigurationProperties、@Value)

时间:2023-12-08 23:33:06浏览次数:43  
标签:name 配置文件 Spring SpringBootApplication boot Value private 注解

学习视频:【编程不良人】2021年SpringBoot最新最全教程

3.5 @SpringBootApplication详解

这是一个组合注解,就是由多个注解组成。下列注解红框内称为元注解(jdk提供)

@Target:指定注解作用范围 @Retention:指定注解什么时候生效

  • 重要注解
    @SpringBootConfiguration:自动配置Spring、SpringMVC相关环境
    @EnableAutoConfiguration:开启自动配置 自动配置的核心注解 自动与项目中引入第三方技术自动配置其环境 mybatis、redis、es、rabbitmq等第三方技术
    @ComponentScan:组件/注解扫描 保证扫描范围下的注解生效,扫描范围:当前包及其子包

  • SpringBoot内嵌的服务器传递参数进行测试

3.6 配置文件拆分以及加载外部配置文件

  • 区分测试环境和生产环境

    测试环境的配置文件一般命名为:application-dev.yml

    生产环境的配置文件一般命名为:application-prod.yml

  • 在公共配置环境里去决定激活哪个环境

    **application.yml**
    # 修改内嵌服务器端口号
    server:
      port: 8081
    spring:
      profiles:
        active: **dev**  #**指定dev环境的配置文件生效**
    
  • 加载外部配置文件

    在设置中,下图的Program arguments填入下列格式 :

    - -spring.config.location=D:\Desktop\application-local-prod.yml

    等于号右边填绝对路径,即可完成加载。

3.7 创建SpringBoot的第二种创建方式

  • 通过module创建

    选择需要的依赖

    创建好了,.mvc、mvnw、mvnw.cmd 是在linux中运行的。

    .gitignore是git设置忽略文件的。HELP.md是介绍的文档。

    pom.xml

    .......
    <dependencies>
        <!--引入web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <!--引入test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <!-- 在打成jar包运行时,必须放入插件配置  注意:没有插件,无法运行打包的项目-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

第四章、工厂创建对象

4.1 获取基本类型、对象

application.yml
# 声明基本属性注入
name: 小陈
age: 23
price: 23.2
maps: "{'asd':'小红','qwe':'大米'}" # 注意:@Value注入 格式要用 #{${"maps"}}
birthday: 2012/1/3 15:13:56 # 默认日期格式要写成: yyyy/mm/dd  HH:MM:ss
lists: jack,xiaoming,mike,abcd

# 声明对象方式注入
orders:
  age: 21
  name: "小红"
@ConfigurationProperties(value = "orders")
@Component
public class User {
    private String name;
    private Integer age;

    get....
		set....
}
@Value("${name}")
    private String name;
    @Value("${birthday}")
    private Date birthday;
    @Value("${lists}")
    private List<String> lists;
    @Value("#{${maps}}")
    private Map<String,String> maps;

    @RequestMapping("hello1")
    public String hello1() {
        System.out.println("name = " + name);
        System.out.println("birthday = " + birthday);
        for (String list : lists) {
            System.out.println("list = " + list);
        }
        System.out.println("maps = " + maps);
        return "hello1";
    }

    @Autowired
    private User user;

    @RequestMapping("hello3")
    public String hello3() {
        System.out.println("name = " + user.getName());
        System.out.println("age = " + user.getAge());
        return "hello3";
    }

通过这种获取对象的方式,要注意:一定要有set方法。

@ConfigurationProperties(value/prefix = "orders")的参数,value和prefix是一样的

<!--根据@ConfigurationProperties构建元数据-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <!--代表依赖不会被传递,例如子项目继承父项目,不会被传递-->
    <optional>true</optional>
</dependency>

引入这个依赖后,我们在配置文件中输入被@ConfigurationProperties修饰的对象名后,就会有对其成员变量名的提示

标签:name,配置文件,Spring,SpringBootApplication,boot,Value,private,注解
From: https://www.cnblogs.com/eyewink/p/17889288.html

相关文章

  • Java-Spring框架中用到的设计模式
    Java-Spring框架中用到的设计模式单例模式(Singleton)Spring中的Bean默认是单例的,容器中只存在一个实例。这有助于节省资源,提高性能。工厂模式(Factory)Spring使用工厂模式来创建和管理Bean。通过配置文件或注解,Spring容器可以根据需要创建相应的Bean对象。代理模......
  • 内核维护者手册 - 维护者入口配置文件【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/maintainer/maintainer-entry-profile.html维护者入口配置文件维护者入口配置文件是对顶层流程文档(提交补丁、提交驱动程序等)的补充,其中包括子系统/设备驱动程序本地习俗以及有关补丁提交生命周期的详细信息。贡献者使用此文档来调整他......
  • Springboot内置神器:CollectionUtils工具类的实战秘籍
    前言实际业务开发中,集合的判断和操作也是经常用到的,Spring也针对集合的判断和操作封装了一些方法,但是最令我惊讶的是,我在梳理这些内容的过程中发现了一些有趣的现象,我的第一反应是不敢相信,再想一想,没错,我是对的。所以强烈建议大家可以认真看完这篇文章,这一篇绝对有价值,因为有趣的......
  • 失物招领平台|基于Springboot和Vue实现失物招领系统
    作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享收藏点赞不迷路 关注作者有好处文末获得源码 项目编号:BS-XX-194一,环境介绍语言环境:Java: jdk1.8数据库:My......
  • 灾区物资救助系统|基于Springboot开发实现灾区物资救助系统
    作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享收藏点赞不迷路 关注作者有好处文末获得源码 项目编号:BS-XX-198一,环境介绍语言环境:Java: jdk1.8数据库:My......
  • 物资管理|基于SpringBoot技术的防疫物资管理系统设计与实现
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助收藏点赞不迷路 关注作......
  • Caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication
    原文链接:https://blog.csdn.net/De_Buffer/article/details/132492287最终解决方法虽然通过更换连接客户端为jedis解决了问题,但不符合发展趋势,lettuce已成为主流redis客户端,springboot2官方推荐,因此在这个保底方案基础上继续探究。终于!!找到解决我的问题的一篇文章,跟着他的思......
  • springboot热部署配置
    第一步pom文件 <!--引入热部署依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></......
  • bochsrc配置文件
    Orange'S一个操作系统的实现,原书第二版。ubuntu22.04环境下。第二章Bochs的使用,关于bochsrc配置文件,更新为下列代码,修改了第9,10行和第27行。################################################################ConfigurationfileforBochs##############################......
  • scrapy框架之配置文件1
    部分配置文件详解:1#-*-coding:utf-8-*-23#Scrapysettingsfortest001project4#5#Forsimplicity,thisfilecontainsonlysettingsconsideredimportantor6#commonlyused.Youcanfindmoresettingsconsultingthedocumentation:7......