📜  如何以 3 种不同的方式创建 Spring Bean?

📅  最后修改于: 2022-05-13 01:54:24.095000             🧑  作者: Mango

如何以 3 种不同的方式创建 Spring Bean?

Spring 是最流行的Java EE 框架之一。它是一个开源轻量级框架,允许Java EE 7 开发人员构建简单、可靠且可扩展的企业应用程序。该框架主要侧重于提供各种方法来帮助您管理业务对象。与Java数据库连接 (JDBC)、JavaServer Pages (JSP) 和Java Servlet 等经典Java框架和应用程序编程接口 (API) 相比,它使 Web 应用程序的开发更加容易。在 Spring 中,构成应用程序主干并由 Spring IoC 容器管理的对象称为beans 。 bean 是由 Spring IoC 容器实例化、组装和管理的对象。

创建 Spring Bean 的不同方法

在这里,我们将讨论如何以 3 种不同的方式创建 Spring Bean,如下所示:

  1. 在 XML 配置文件 (beans.xml) 中创建 Bean
  2. 使用@Component 注解
  3. 使用@Bean 注解

方法 1:在 XML 配置文件 (beans.xml) 中创建 Bean

创建 Spring bean 最流行的方法之一是在 XML 配置文件中定义一个 bean,如下所示。


让我们创建一个具有两个属性 id 和 studentName 的简单类 Student,然后创建一个简单的方法来打印学生的详细信息。

例子

Java
// Java Program to Illustrate Student Class
 
// Class
public class Student {
 
    // Class data members
    private int id;
    private String studentName;
 
    // Method
    public void displayInfo()
    {
        // Print statement
        System.out.println("Student Name is " + studentName
                           + " and Roll Number is " + id);
    }
}


XML


 
    
 
    
 


Java
// Java Program to Illustrate College Class
 
package ComponentAnnotaion;
 
// Class
public class College {
 
    // Method
    public void test()
    {
        // Print statement
        // whenever this method is called
        System.out.println("Test College Method");
    }
}


Java
// Java Program to Illustrate College Class
 
package ComponentAnnotaion;
 
// Importing required classes
import org.springframework.stereotype.Component;
 
@Component("collegeBean")
 
// Class
public class College {
 
    // Method
    public void test()
    {
        // Print statement
        System.out.println("Test College Method");
    }
}


Java
package BeanAnnotaion;
 
import org.springframework.stereotype.Component;
 
public class College {
 
    public void test(){
        System.out.println("Test College Method");
    }
}


Java
package ComponentAnnotaion;
 
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class CollegeConfig {
 
}


Java
// Java Program to Illustrate Configuration in College Class
 
package BeanAnnotaion;
 
// Importing required classes
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class CollegeConfig {
 
    // Using Bean annotation to create
    // College class Bean
    @Bean
 
    // Here the method name is the
    // bean id/bean name
    public College collegeBean()
    {
 
        // Return the College object
        return new College();
    }
}


现在让我们在项目类路径中创建一个名为beans.xml的 XML 文件。在这个 beans.xml 文件中,我们必须像这样定义我们的 Student bean。就是这样。这样就可以在spring中创建bean了。

例子

XML



 
    
 
    
 


方法二:使用@Component注解

Spring Annotations 是一种元数据形式,提供有关程序的数据。注释用于提供有关程序的补充信息。它对他们注释的代码的操作没有直接影响。它不会改变编译程序的动作。 @Component是一个注解,它允许 Spring 自动检测自定义 bean。

示例:假设我们已经有一个Java项目,并且所有 Spring JAR 文件都导入到该项目中。现在让我们创建一个名为 College 的简单类,在该类中,我们有一个简单的方法。以下是学院的代码。 Java文件。

A.档案:大学。Java

Java

// Java Program to Illustrate College Class
 
package ComponentAnnotaion;
 
// Class
public class College {
 
    // Method
    public void test()
    {
        // Print statement
        // whenever this method is called
        System.out.println("Test College Method");
    }
}

现在让我们为这个类创建一个 Bean。所以我们可以使用@Component注解来完成同样的任务。所以我们可以修改我们的学院。 Java文件是这样的。就是这样。

B.大学。Java

Java

// Java Program to Illustrate College Class
 
package ComponentAnnotaion;
 
// Importing required classes
import org.springframework.stereotype.Component;
 
@Component("collegeBean")
 
// Class
public class College {
 
    // Method
    public void test()
    {
        // Print statement
        System.out.println("Test College Method");
    }
}


方法三:使用@Bean注解

Spring 中最重要的注解之一是@Bean 注解,它应用于方法以指定它返回一个由 Spring 上下文管理的 bean。 Spring Bean 注解通常在配置类方法中声明。

假设我们已经有一个Java项目,并且所有 Spring JAR 文件都导入到该项目中。现在让我们创建一个名为 College 的简单类,在该类中,我们有一个简单的方法。以下是学院的代码。 Java文件。

A.大学。Java

Java

package BeanAnnotaion;
 
import org.springframework.stereotype.Component;
 
public class College {
 
    public void test(){
        System.out.println("Test College Method");
    }
}

现在让我们创建一个名为CollegeConfig的配置类。下面是CollegeConfig 的代码。Java

B. CollegeConfig。Java

Java

package ComponentAnnotaion;
 
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class CollegeConfig {
 
}

在这里,我们将使用@Bean 注解创建 spring bean。要使用配置类中的@Bean 注解创建 College 类 bean,我们可以在CollegeConfig 中编写类似这样的内容。 Java文件。请参阅评论以获得更好的理解。

@Bean
// Here the method name is the
// bean id/bean name
public College collegeBean(){
    // Return the College object
    return new College();
}

实现:下面是CollegeConfig 的完整代码。 Java文件如下:

Java

// Java Program to Illustrate Configuration in College Class
 
package BeanAnnotaion;
 
// Importing required classes
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class CollegeConfig {
 
    // Using Bean annotation to create
    // College class Bean
    @Bean
 
    // Here the method name is the
    // bean id/bean name
    public College collegeBean()
    {
 
        // Return the College object
        return new College();
    }
}