• spring简单配置


    4.spring配置

    4.1 别名

    • 原来的名字可能为了规范会比较长,别名就可以简写
    • 别名可以隐藏你Bean对象真实名,用户只需要输入别名即可。
    <!--添加了别名可以用别名获取到-->
    <alias name="hello" alias="helloXX"/>
    
    • 1
    • 2

    4.2 Spring Bean配置

    • Spring IoC 容器管理的对象称为 Bean,Bean 根据 Spring 配置文件中的信息创建。

    • Spring 配置文件支持两种格式,即 XML 文件格式和 Properties 文件格式。

    Properties 配置文件主要以 key-value 键值对的形式存在,只能赋值,不能进行其他操作,适用于简单的属性配置。

    XML 配置文件采用树形结构,结构清晰,相较于 Properties 文件更加灵活。但是 XML 配置比较繁琐,适用于大型的复杂的项目。

    • 在 XML 配置的 元素中可以包含多个属性或子元素,常用的属性或子元素如下表所示。
    属性名称描述
    idBean 的唯一标识符(也就是对象名),Spring IoC 容器对 Bean 的配置和管理都通过该属性完成。id 的值必须以字母开始,可以使用字母、数字、下划线等符号。
    name该属性表示 Bean 的名称,我们可以通过 name 属性为同一个 Bean 同时指定多个名称,每个名称之间用逗号或分号(空格、)隔开。Spring 容器可以通过 name 属性配置和管理容器中的 Bean。相比于alias只能指定一个别名,这个更高级实用。
    class该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,即类的全限定名。–包名+类名
    scope表示 Bean 的作用域,属性值可以为 singleton(单例)、prototype(原型)每次实例的时候新建一个、request、session 和 global Session。默认值是 singleton。
    constructor-arg 元素的子元素,我们可以通过该元素,将构造参数传入,以实现 Bean 的实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型。
    property元素的子元素,用于调用 Bean 实例中的 setter 方法对属性进行赋值,从而完成属性的注入。该元素的 name 属性用于指定 Bean 实例中相应的属性名。
    ref 和 等元素的子元索,用于指定对某个 Bean 实例的引用,即 元素中的 id 或 name 属性。
    value 和 等元素的子元素,用于直接指定一个常量值。
    list用于封装 List 或数组类型的属性注入。
    set用于封装 Set 类型的属性注入。
    map用于封装 Map 类型的属性注入。
    entry 元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值。
    init-method容器加载 Bean 时调用该方法,类似于 Servlet 中的 init() 方法
    destroy-method容器删除 Bean 时调用该方法,类似于 Servlet 中的 destroy() 方法。该方法只在 scope=singleton 时有效
    lazy-init懒加载,值为 true,容器在首次请求时才会创建 Bean 实例;值为 false,容器在启动时创建 Bean 实例。该方法只在 scope=singleton 时有效

    4.3 Import导入配置文件

    • Import用于团队开发,可以将多个配置文件,导入合并为一个

    • 项目中多个人开发,三人复制不同的类开发,不同的类需要注册到不同的bean中,可以利用import将所有人的beans.xml合并为一个总的。使用的时候直接使用总配置。

    <import resource="beans1.xml"/>
    <import resource="beans.xml"/>
    <bean id="hello" class="com.zk.pojo.Hello" scope="prototype">
        <constructor-arg type="java.lang.String" value="名字"/>
        <constructor-arg type="java.lang.String" value="密码"/>
    </bean>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 测试
    @Test
    public void TestDemo03(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        Hello hello = applicationContext.getBean("hello", Hello.class);
        System.out.println(hello.getMessage()+"//"+hello.getCall());
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 结果
    com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 TestSpring,TestDemo03
    名字//密码
    
    Process finished with exit code 0
    
    • 1
    • 2
    • 3
    • 4
    • 这个导入实际上是带路径的,同名文件路径一点不同
    • 如果重名会按照引入的顺序,后一个覆盖前一个

    本专栏下一篇:spring依赖注入

  • 相关阅读:
    22-08-27 西安 JUC(01)线程安全synchronized、Lock锁、线程通信
    Fabric.js 元素中心缩放
    【树莓派不吃灰】命令篇⑤ ps -ef | grep xxx | grep -v grep | wc -l 命令
    01 Sekiro服务器部署和第一个示例部署成功,js逆向和加解密
    【LeetCode】Day122-根据字符出现频率排序 & 最接近原点的 K 个点
    夜神模拟器进行APP抓包
    Failed to rollback to checkpoint/savepoint hdfs://mycluster:8020/ck/sapgateway
    PHP两个三元运算符“??” 和“?:”的用法和区别
    数据库MYSQL面试篇(1)
    JavaScript相关概念
  • 原文地址:https://blog.csdn.net/weixin_42045639/article/details/125529905