SpringでBeanオブジェクトを作成する方法

準備オーケー

Mavenプロジェクトを作成し、パッケージを作成して、UserServiceインターフェイスとインターフェイス実装クラスを記述します
ここに画像の説明を挿入
UserServiceImplUserServiceインターフェイス

/*
* 保存用户接口
* */
public interface UserService {
    
    
    /*
    * 保存用户
    * */
    void saveUser();
}

UserServiceインターフェース実装クラス

/*
* 保存用户实现类
* */
public class UserServiceImpl implements UserService {
    
    

    public void saveUser() {
    
    
        System.out.println("saveUser方法执行了");
    }
}

pomファイルで導入されたjarパッケージは前の記事と同じです。前の章を参照できます。

1つは、デフォルトの構築方法が作成されることです。

  Springはデフォルトでデフォルトの構築方法でBeanを作成します。構築方法がない場合は作成されません。構成ファイルで以下を構成するだけで済みます。これは、前のspringIocエントリの場合の構成と同じです。章。
bean.xml構成ファイル:

<?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.xsd">

    <!--
    第一种方式:默认构造方法
    配置好bean标签的id和class属性后,没有配置其他的属性和标签时,采用的就是
    默认构造方法创建实例,如果没有默认构造函数无法创建实例。
    -->
    <bean id="userService" class="com.zy.service.impl.UserServiceImpl"></bean>
</beans>

テストカテゴリ:

public class TestDemo01 {
    
    
    public static void main(String[] args) {
    
    
        //加载配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        //根据bean标签的id获取实例对象
        UserService userService = (UserService) context.getBean("userService");
        //调用方法
        userService.saveUser();
    }
}

演算結果:
ここに画像の説明を挿入

次に、インスタンスファクトリが作成されます

  インスタンスファクトリを介して作成するには、最初にファクトリパッケージの下にファクトリクラスInstanceFactoryを記述し、戻り値がUserServiceImplのcreateUserService()メソッドを記述します。

public class InstanceFactory {
    
    
    /*
    * 我们模拟一个实例工厂
    * */
    public UserService createUserService(){
    
    
        //通过返回值 new UserServiceImpl
        return  new UserServiceImpl();
    }
}

bean.xml構成:

<?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.xsd">
    <!--
     第二种方式:通过实例工厂
       首先通过bean标签实例化工厂类,在通过factory-bean属性引用实例化的工厂
       factory-method属性配置工厂类中的方法
    -->
    <bean id="instanceFactory" class="com.zy.factory.InstanceFactory"></bean>
    <bean id="userService" factory-bean="instanceFactory" factory-method="createUserService"></bean>
</beans>

テストクラスは、上記の最初のデフォルトの構築方法のテストクラスと同じです。

3つの静的な工場作成

  静的ファクトリを介して作成するには、最初にファクトリパッケージの下にstaticFactoryというファクトリクラスを記述し、戻り値UserServiceImplを指定してcreateUserService()メソッドを記述し、静的キーワードの変更を追加します。

public class staticFactory {
    
    
    /*
    * 我们模拟一个实例工厂
    * */
    public static UserService createUserService(){
    
    
        //通过返回值 new UserServiceImpl
        return  new UserServiceImpl();
    }
}

bean.xml構成:

<?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.xsd">
    <!--
     第三种方式:通过静态工厂
    -->
    <bean id="userService" class="com.zy.staticFactory.staticFactory" factory-method="createUserService"></bean>
</beans>

テストクラスは、上記の最初のデフォルトの構築方法のテストクラスと同じです。
さあ、男の子

おすすめ

転載: blog.csdn.net/qq_42494654/article/details/110942647