SPRINGBOOT01_概述、入门案例、父项目依赖管理特性、@Configuration、@Import、@Conditional、@ConfigurationProperties配置绑定(四)

简介: ⑦. 原生配置文件引入 ImportResource⑧. 底层注解@ConfigurationProperties配置绑定

⑦. 原生配置文件引入 ImportResource


  • ①. 比如,公司使用bean.xml文件生成配置bean,然而你为了省事,想继续复用bean.xml,这个时候可以使用@ImportResource


<?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-2.5.xsd">
    <bean id="hehe" class="com.xiaozhi.bean.User">
        <property name="name" value="TANGZHI"></property>
        <property name="age" value="24"></property>
    </bean>
    <bean id="haha" class="com.xiaozhi.bean.Pet">
        <property name="name" value="dog"></property>
    </bean>
</beans>
@ImportResource("classpath:bean.xml")//比如,公司使用bean.xml文件生成配置bean,然而你为了省事,想继续复用bean.xml,@ImportResource粉墨登场。
public class MyConfig {
}
    //引入了importResource
    boolean hehe = run.containsBean("hehe");
    System.out.println("容器中是否有hehe组件"+hehe);//true
    boolean haha = run.containsBean("haha");
    System.out.println("容器中是否有haha组件"+haha);//true


⑧. 底层注解@ConfigurationProperties配置绑定


  • ①. 方式一:@ConfigurationProperties + @Component


@Data
@NoArgsConstructor
@AllArgsConstructor
/**
 * 注意: 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
 */
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {
    private String branch;
    private String price;
}


# application.yaml
server:
  port: 8888
mycar:
  branch: "雅阁"
  price: "20w"


@RestController
public class myController {
    @Autowired
    Car car;
    @GetMapping("/car")
    public Car getMyCar(){
        return car;
    }
}


微信图片_20220107151921.png


②. 方式二:@EnableConfigurationProperties + @ConfigurationProperties


/**
 * EnableConfigurationProperties做了两件事情
 * (1). 开启Car配置绑定功能
 * (2). 把这个Car这个组件自动注册到容器中
 */
@EnableConfigurationProperties(Car.class)
public class MyConfig {


@Data
@NoArgsConstructor
@AllArgsConstructor
/**
 * 注意: 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
 */
//@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {
    private String branch;
    private String price;
}


③. 问题:如果出现如下提示,项目也可以运行


解决方案:如果要去掉上述的提示,则可以在 pom.xml 文件中添加如下依赖:


微信图片_20220107152024.png


    <dependency>
        <groupId> org.springframework.boot </groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <!--不传递依赖-->
        <optional>true</optional>
    </dependency>



相关文章
|
28天前
|
前端开发 Java 数据库
SpringBoot入门 - 对Hello world进行MVC分层
SpringBoot入门 - 对Hello world进行MVC分层
43 3
SpringBoot入门 - 对Hello world进行MVC分层
|
28天前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
39 3
SpringBoot入门 - 添加内存数据库H2
|
6天前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
47 14
|
22天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
40 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
28天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门 - SpringBoot HelloWorld
SpringBoot入门 - SpringBoot HelloWorld
SpringBoot入门 - SpringBoot HelloWorld
|
28天前
|
XML 安全 Java
SpringBoot入门 - SpringBoot简介
▶SpringBoot入门 - SpringBoot简介
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
178 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
116 62
|
9天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
60 13

热门文章

最新文章