Spring的加载配置文件、容器和获取bean的方式

这篇具有很好参考价值的文章主要介绍了Spring的加载配置文件、容器和获取bean的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Spring的加载配置文件、容器和获取bean的方式,# JavaWeb,spring,java,后端

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb

石可破也,而不可夺坚;丹可磨也,而不可夺赤。

一、加载properties文件

1.1加载单个properties文件

  • properties文件:jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis
jdbc.username=root
jdbc.password=123456
  • 1.开启context命名空间
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        ">
</beans>
  • 2.使用context命名空间,加载指定properties文件
<context:property-placeholder location="jdbc.properties"/><context:property-placeholder location="jdbc.properties"/>
  • 3.使用属性占位符${}读取properties文件中的属性
<bean  class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

Spring的加载配置文件、容器和获取bean的方式,# JavaWeb,spring,java,后端

1.2加载多个properties文件

  • properties文件1:jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis
jdbc.username=root
jdbc.password=123456
  • properties文件2:jdbc2.properties
username=zhangsan
  • 2.使用context命名空间,加载指定properties文件
<!--1.开启context命名空间-->
    <!--2.使用context空间加载properties文件-->
    <context:property-placeholder location="jdbc.properties,jdbc2.properties" system-properties-mode="NEVER"/>
    <!--spring加载配置文件-->
    <!--3.使用属性占位符${}读取properties文件中的属性-->
    <bean  class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <bean id="bookDao" class="com.practice.dao.impl.BookDaoImpl">
        <property name="name" value="${jdbc.username}"/>
        <property name="name2" value="${username}"/>
    </bean>

Spring的加载配置文件、容器和获取bean的方式,# JavaWeb,spring,java,后端

  • 3.最理想的方式,使用*.properties即表示加载所有properties文件
    <context:property-placeholder location="classpath*:*.properties" system-properties-mode="NEVER"/>

1.3加载properties文件小结

  • 不加载系统属性
    <context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>
  • 加载多个properties文件
    <context:property-placeholder location="jdbc.properties,jdbc2.properties"/>
  • 加载所有properties文件
    <context:property-placeholder location="*.properties"/>
  • 加载properties文件标准格式
    <context:property-placeholder location="classpath:*.properties"/>
  • 从类路径或jar包搜索并加载properties文件
    <context:property-placeholder location="classpath*:*.properties"/>

二、容器

2.1创建容器

2.1.1加载类路径下的配置文件

public class App {
    public static void main(String[] args) {
        ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
        BookDao bookDao = (BookDao) act.getBean("bookDao");
        bookDao.save2();
    }
}

Spring的加载配置文件、容器和获取bean的方式,# JavaWeb,spring,java,后端

2.1.2从文件系统下加载配置文件(了解)

public class App {
    public static void main(String[] args) {
        //从文件系统下加载配置文件,参数为配置文件的绝对路径
        ApplicationContext act = new FileSystemXmlApplicationContext("D:\\storage\\java_practice\\spring-7-30\\src\\main\\resources\\applicationContext.xml");
        BookDao bookDao = (BookDao) act.getBean("bookDao");
        bookDao.save2();
    }
}

2.1.3加载多个配置文件

        ApplicationContext act = new ClassPathXmlApplicationContext("bean1.xml","bean2.xml");

2.2获取bean

2.2.1类型强转

        BookDao bookDao = (BookDao) act.getBean("bookDao");

2.2.2多个参数

        BookDao bookDao = act.getBean("bookDao",BookDao.class);

2.2.3按类型获取

  • 对应的bean中此类型只能有一个
        BookDao bookDao = act.getBean(BookDao.class);

总结

关于Spring的加载配置文件、容器和获取bean的方式大概就这么多,欢迎各位小伙伴点赞+关注!!!文章来源地址https://www.toymoban.com/news/detail-617686.html

到了这里,关于Spring的加载配置文件、容器和获取bean的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaEE】Spring中注解的方式去获取Bean对象

    【JavaEE】Spring的开发要点总结(3) 在前面的代码里,我们获取Bean对象也比较麻烦: 本文章就是为了更方便地去获取Bean对象~ 对象装配 也叫 对象注入 那么有没有对应的注解去实现这个功能呢? Spring提供的三种实现方法: 属性注入 构造方法注入 Setter注入 而这种非明文获取

    2024年02月15日
    浏览(38)
  • spring(1):基于XML获取Bean对象以及各种依赖注入方式

    1.1 根据id获取 1.2 根据类型获取 1.3 根据id和类型获取 注意: 当根据类型获取bean时,要求IOC容器中指定类型的bean有且只能有一个。 例如以下XML文件,当IOC容器中一共配置了两个,根据类型获取时会抛出异常。 根据类型来获取bean时,在满足bean唯一性的前提下,其实只是看:

    2024年01月25日
    浏览(44)
  • JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服

    不同配置文件,配置同一个属性谁有效 propertiesymlyaml 命令行参数Java系统属性 项目打包后要改变属性: 红色是Java系统属性,绿色是命令行参数 ‘ 获取IOC容器:applicationContext就是IOC容器对象 IOC容器中bean是默认单例的只有一个,这样三个获取的bean是同一个 单例还是多例取决

    2024年04月23日
    浏览(45)
  • 【Spring学习】走进spring,spring的创建和使用,spring获取Bean的几种常见方式, ApplicationContext 和 BeanFactory的区别(重点面试)

    前言: 大家好,我是 良辰丫 ,我们在上一篇文章不是简单介绍了SpringBoot嘛,为什么不学习SpringBoot,而是要开始Spring呢?Spring是SpringBoot的前身,我们先学习以前的稍微复杂的框架,才能更好的学习SpringBoot.💌💌💌 🧑个人主页:良辰针不戳 📖所属专栏:javaEE进阶篇之框架学习 🍎励志

    2024年02月08日
    浏览(44)
  • javaee spring配置文件bean标签详解

    bean标签中添加scope属性,设置bean对应对象生成规则. scope = “singleton” 单例,默认值,适用于实际开发中的绝大部分情况. scope=“prototype” 多例,适用于struts2中的action配置 注意: 只对单例有效,设置scope=\\\"singleton\\\"时测试 延时创建属性. lazy-init=“false” 默认值,不延迟创建,即在启动时

    2024年02月11日
    浏览(64)
  • spring复习:(50)@Configuration注解配置的singleton的bean是什么时候被创建出来并缓存到容器的?

    一、主类: 二、配置类: 三、singleton bean的创建流程 运行到context.refresh(); 进入refresh方法: 向下运行到红线位置时: 会实例化所有的singleton bean.进入finisheBeanFactoryInitialization方法: 向下拖动代码,可以看到beanFactory.preInstantiateSingletons(); 进入preInstantiateSingletons方法: 可以看

    2024年02月16日
    浏览(37)
  • 73.是否可以把我们所需的Bean都放入Spring­mvc子容器里面来管理(springmvc的spring-servlet.xml中配置全局扫描)?

    可以 , 因为父容器的体现无非是为了获取子容器不包含的bean, 如果全部包含在子容器完全用不到父容器了, 所以是可以全部放在springmvc子容器来管理的。 虽然可以这么做不过一般应该是不推荐这么去做的,一般人也不会这么干的。如果你的项目里有用到事物、或者aop记得也

    2024年02月21日
    浏览(46)
  • springBoot bean的多种加载方式

    1、通过xml 2、通过注解@Component及其衍生注解@Controller、@Service、@Repository定义bean     例子:         @Component        public void Car{        } 3、使用@Configuration定义成一个配置类      @Configuration       public void Car{        } 4、实现FactoryBean        例子:         5、加载

    2024年02月06日
    浏览(43)
  • SpringBoot项目加载配置文件的6种方式

    目录 1、通过@value注入 2、通过@ConfigurationProperties注入 3、通过框架自带对象Environment实现属性动态注入 4、通过@PropertySource注解实现外部配置文件注入属性值 5、yml 外部配置文件动态注入 6、Java原生态方式注入属性值 满足条件: 1、该类首先要被SpringBoot框架管理,属于SpringB

    2024年02月11日
    浏览(31)
  • Spring中Bean加载流程

    BeanDefinition 1.1什么是BeanDefinition? 1.2 BeanDifinition中重要的属性 1.3 BeanDefinition的解析 BeanFactory 2.1 什么是BeanFactory? 2.2 BeanFactory工作流程: Bean生命周期 3.1 什么是Bean生命周期? Bean生命周期是Spring中一个Bean创建过程和销毁过程中所经历的步骤,其中Bean创建过程是重点。 3.2 核

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包