spring创建bean的三种方式

几乎每个后端程序员在实际工作中或学习中都会用到spring,spring为我们创建了对象,摒弃了直接在代码中new一个对象的方法,其最大的特点就是:解耦合,可以说解耦合也是spring的一大特点。下面我们介绍spring创建bean的三种形式:

其中创建项目及新建类的过程省略,只保留主要文件。

第一种:通过构造函数来创建对象

首先新建一个person类,很简单的一个person类,只有set和get方法

package org.example;

public class Person {

    private String name;

    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

然后新建applicationContext.xml文档

<bean id = "person" class="org.example.Person">

最后再新建一个test类,可以用自带的

@Test
public void test2(){
    ApplicationContext ctx = new  ClassPathXmlApplicationContext("/applicationContext.xml");
    //1
    Person person = (Person)ctx.getBean("person");
    //2
    Person person1 = ctx.getBean("person",Person.class);
    //3
    Person person2 = ctx.getBean(Person.class);
    System.out.println(person);
    System.out.println(person1);
    System.out.println(person2);
}

其中1,2,3分别代表三种获取bean对象的形式,执行该test类,这是第一种方法。

第二种方式:通过实例工厂

首先创建一个类ConnectionFactory。

package factoryBean;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {

    public Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_nacos?useSSL=false","root","123456");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

}

然后applicationContext.xml中添加如下内容

<bean name="connectionFactory" class="factoryBean.ConnectionFactory"/>
<bean name="conn" factory-bean="connectionFactory" factory-method="getConnection"/>

然后再编写测试类

@Test
public void test3(){
    ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    Connection conn = (Connection) ctx.getBean("conn");
    System.out.println(conn);
}

直接运行结果即可,这是第二种创建实例工厂

第三种:创建静态工厂

首先创建类StaticConnectionFactory

package factoryBean;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class StaticConnectionFactory {

    public static Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_nacos","root","123456");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
        }
        return connection;
    }

}

然后applicationContext.xml文件中添加如下内容

<!--spring创建静态工厂-->
<bean id="connection" class="factoryBean.StaticConnectionFactory" factory-method="getConnection"></bean>

然后编写测试类

@Test
public void test4(){
    ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    Connection connection = (Connection) ctx.getBean("connection");
    System.out.println(connection);
}

运行即可。

以上就是spring创建bean的三种方式,供大家参考

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值