SpringIOC笔记bean的配置

  1. lazy-init的作用,可以控制bean的创建时间,如果设置为true就是第一次获取该对象时才去创建。

    <bean class="com.alibaba.druid.pool.DruidDataSource" lazy-init="true"  id="dataSource" name="dataSource2,dataSource3">
            <property name="driverClassName" value="${jdbc.driver}"></property>
            <property name="url" value="${jdbc.url}"></property>
            <property name="username" value="${jdbc.username}"></property>
            <property name="password" value="${jdbc.password}"></property>
    </bean>
  2. init-method可以用来设置初始化方法,设置完后容器创建对象就会自动帮我们调用对应的方法,配置的方法只能是空参。

    <bean class="com.sangeng.domain.Student" id="student" init-method="init" destroy-method="close"></bean>
  3. desdroy-method对象销毁之前,用于释放资源。

  4. 往bean中导入xml

    <import resource="classpath:jdbc.xml"></import>
  5. 读取properties配置文件

    xmlns:context="http://www.springframework.org/schema/context"
    
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis_db
    jdbc.username=root
    jdbc.password=root

  6. 实例工厂 factory-bean用来指定使用哪个工厂对象  ,factory-method用来指定使用哪个工厂方法

    <!--创建实例工厂-->
        <bean class="com.sangeng.factory.CarFactory" id="carFactory"></bean>
        <!--使用实例工厂创建Car放入容器-->
        <!--factory-bean 用来指定使用哪个工厂对象-->
        <!--factory-method 用来指定使用哪个工厂方法-->
        <bean factory-bean="carFactory" factory-method="getCar" id="car"></bean>

    Car.java

    package com.sangeng.domain;
    
    public class Car {
    
        //方向盘
        private SteeringWheel steeringWheel;
        //轮胎
        private Tyre tyre;
        //发动机
        private Motor motor;
    
        public Car(){
    
        }
    
        public void testType(){
            System.out.println("调试轮胎");
        }
        public void testMontor(){
            System.out.println("调试发动机");
        }
    
        public void testSteeringWheel(){
            System.out.println("调试方向盘");
        }
    
        public SteeringWheel getSteeringWheel() {
            return steeringWheel;
        }
    
        public void setSteeringWheel(SteeringWheel steeringWheel) {
            this.steeringWheel = steeringWheel;
        }
    
        public Tyre getTyre() {
            return tyre;
        }
    
        public void setTyre(Tyre tyre) {
            this.tyre = tyre;
        }
    
        public Motor getMotor() {
            return motor;
        }
    
        public void setMotor(Motor motor) {
            this.motor = motor;
        }
    }
    
    CarFactory.java
    package com.sangeng.factory;
    
    
    import com.sangeng.domain.Car;
    import com.sangeng.domain.Motor;
    import com.sangeng.domain.SteeringWheel;
    import com.sangeng.domain.Tyre;
    
    public class CarFactory {
    
        public Car getCar(){
            Car c = new Car();
            c.setMotor(new Motor());
            c.setSteeringWheel(new SteeringWheel());
            c.setTyre(new Tyre());
            c.testMontor();
            c.testSteeringWheel();
            c.testType();
            return c;
        }
    }
    

  7. 使用静态工厂创建Car放入容器

    <bean class="com.sangeng.factory.CarStaticFactory" factory-method="getCar" id="car2"></bean>
    CarStaticFactory.java
    package com.sangeng.factory;
    
    import com.sangeng.domain.Car;
    import com.sangeng.domain.Motor;
    import com.sangeng.domain.SteeringWheel;
    import com.sangeng.domain.Tyre;
    
    public class CarStaticFactory {
    
        public static Car getCar(){
            Car c = new Car();
            c.setMotor(new Motor());
            c.setSteeringWheel(new SteeringWheel());
            c.setTyre(new Tyre());
            c.testMontor();
            c.testSteeringWheel();
            c.testType();
            return c;
        }
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值