使用注解装配Bean

 注解@Component代表Spring Ioc 会把 这个类扫描生产Bean 实例,而其中 value属性代表这个类在Spring 中的id,这就相当于XML方式定义的Bean  的 id

现在有了这个类还不能测试,因为Spring IOC 并不知道  需要去哪里扫描对象,这时候可以使用一个Java Config 来告诉它

package com.nf147.manage.spring;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component(value = "role")
public class Big {

    @Value("1")
    private int id;

    @Value("可爱的小猪")
    private String name;

    @Value("1")
    private int age;


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

 

注意:包名要和代码Big类一致,

@ComponentScan 代表 进行扫描,默认是扫描当前包的路径,spring 的包名要和它保持一致才能说扫描,否则是没有的

 

package com.nf147.manage.spring;

import org.springframework.context.annotation.ComponentScan;

@ComponentScan
public class PojoConfig {
}

 

调用代码:

使用了 AnnotationConfigApplicationContext类去初始化Spring Ioc 容器,它是配置项是Big的PojoConfig类,这样Spring Ioc 就会根据注解的配置去解析对应的资源,来生成容器。

 

 

package com.nf147.manage.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {


        ApplicationContext context= new AnnotationConfigApplicationContext(PojoConfig.class);
        Big bean = context.getBean(Big.class);
        System.out.println(bean);


    }
}

 

 效果图:

 

 

转载于:https://www.cnblogs.com/nongzihong/p/10122186.html

Java中,我们可以使用注解装配Bean,常用的注解包括: 1. `@Component`:标注一个类为Spring的组件,即一个Bean。 2. `@Autowired`:自动装配一个Bean,可以在构造函数、Setter方法、字段上使用。 3. `@Qualifier`:用于指定一个Bean的名称,配合@Autowired使用。 4. `@Value`:用于给Bean的属性注入值,包括基本类型、String、数组、List等。 5. `@Configuration`:标注一个类为Spring的配置类,可以在其中定义Bean。 6. `@Bean`:标注一个方法为Spring的Bean,方法的返回值即为Bean实例。 举个例子,假设我们有一个UserService接口和一个UserServiceImpl实现类,我们可以在UserServiceImpl类上使用@Component注解将其标记为一个Spring的Bean: ``` @Component public class UserServiceImpl implements UserService { //... } ``` 然后在其他需要使用UserService的类中,可以使用@Autowired注解将其自动装配: ``` @Service public class OrderService { @Autowired private UserService userService; //... } ``` 如果有多个实现类,我们可以使用@Qualifier注解指定要注入的Bean的名称: ``` @Service public class OrderService { @Autowired @Qualifier("userServiceImpl") private UserService userService; //... } ``` 除此之外,还可以使用@Value注解Bean的属性注入值: ``` @Component public class AppConfig { @Value("${app.name}") private String appName; //... } ``` 最后,在@Configuration类中,我们可以使用@Bean注解定义Bean: ``` @Configuration public class AppConfig { @Bean public UserService userService() { return new UserServiceImpl(); } } ``` 这样,在其他类中就可以通过@Autowired注解将userService自动装配进来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值