Spring注册bean的两种形式——基于注解和基于XML文件

目录

一、基于注解方式注册bean

一、@Configuration注解+@Bean注解的方式:

二、@Compoent 注解+@ComponentScan注解方式:

@Component注解:

@ComponentScan注解:

二、基于 XML文件


一、基于注解方式注册bean

一、@Configuration注解+@Bean注解的方式:

        @Bean注解则是用于在Java配置类中定义一个bean对象的方法。通常情况下,我们将@Configuration注解加在一个类上,表示这个配置类。在配置类中,使用@Bean注解的方法可以返回一个bean对象,Spring容器会根据这些配置来创建相应的bean。通过@Bean注解创建的bean可以在整个应用程序中使用。

 二、@Compoent 注解+@ComponentScan注解方式:
@Component注解:

是用于定义一个普通的组件类,它可以用在任何Spring托管的类上。当Spring容器启动时,它会扫描整个类路径找到所有带有@Component注解的类,并将其实例化为bean对象。可以使用@Component注解的行生注解,如@Controler、@Service和@Repository等。

@ComponentScan注解:

代表进行扫描,默认是扫描当前包的路径中带有或间接使用了 @Component 、@Service、@Controller、@Repository注解的类。它有两个配置项用来指定扫描的包和类:basePackages:它可以配置一个 Java 包的数组,Spring 会根据它的配置扫描对应的包和子包,将配置好的 Bean 装配进来basePackageClasses:它可以配置多个类。这个较少使用。
使用这两个注解,Spring 会根据@ComponentScan注解为包和子包进行扫描装配对应配置的 Bean。

二、基于 XML文件

```java
// 1.首先创建一个实体类
package com.example;  

public class MyBean {  
 private String message;  

 public MyBean() {  
 }  

 public void setMessage(String message) {  
     this.message = message;  
 }  

 public String getMessage() {  
     return message;  
 }  
}
```
// 2.创建一个applicationContext.xml用于配置Bean

```java
<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>标签用于定义一个bean。id属性是bean的唯一标识符,class属性指定了bean的全限定类名-->  
 <bean id="myBean" class="com.example.MyBean">  
     <!-- 设置属性 -->  
     <property name="message" value="Hello, World!"/>  
 </bean>  

</beans>
```
// 成功将person注入到Spring容器中

```java
// 加载这个XML配置文件,并获取bean的实例
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  

public class App {  
 public static void main(String[] args) {  
     // 加载XML配置文件,创建Spring容器  
     ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  

     // 从容器中获取bean的实例  
     MyBean myBean = (MyBean) context.getBean("myBean");  

     // 使用bean  
     System.out.println(myBean.getMessage()); // 输出: Hello, World!  
 }  
}
```

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值