目录
一、@Configuration注解+@Bean注解的方式:
二、@Compoent 注解+@ComponentScan注解方式:
一、基于注解方式注册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!
}
}
```