浅谈@configuration和@bean

本文详细介绍了SpringBoot中使用Java配置替代XML配置的方法,包括@configuration和@Bean注解的使用,以及它们如何帮助构建清晰的配置结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring boot推荐使用java配置的方式,java配置方式可以完全替代xml配置,而java配置方式两个核心注解就是@configuration和@bean

  1. @configuration和@bean

Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的:

        1)@configuration作用于类上,相当于xml配置文件

        2)@bean作用于方法上,相当于xml中的<bean>

2.示例

User类

public class User {

    private String username;

    private String password;

    private Integer age;

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;

    }

    public String getPassword() {

        return password;

    }

    public void setPassword(String password) {

        this.password = password;

    }

    public Integer getAge() {

        return age;

    }

    public void setAge(Integer age) {

        this.age = age;

    }

}

UserDao类

public class UserDAO {   

    public List<User> queryUserList(){

        List<User> result = new ArrayList<User>();

        // 模拟数据库的查询

        for (int i = 0; i < 10; i++) {

            User user = new User();

            user.setUsername("username_" + i);

            user.setPassword("password_" + i);

            user.setAge(i + 1);

            result.add(user);

        }

        return result;

}

}

userService类

@Service

public class UserService {

    @Autowired // 注入Spring容器中的bean对象

    private UserDAO userDAO;

    public List<User> queryUserList() {

        // 调用userDAO中的方法进行查询

        return this.userDAO.queryUserList();

    }

}

编写springconfig用户实例化spring容器

@Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件

@ComponentScan(basePackages = "com.springboot.javaconfig") //配置扫描包

public class SpringConfig {   

    @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>

    public UserDAO getUserDAO(){

        return new UserDAO(); // 直接new对象做演示

    }   

}

编写测试方法用于启动spring容器

public class Main {   

    public static void main(String[] args) {

        // 通过Java配置来实例化Spring容器

        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);       

        // Spring容器中获取Bean对象

        UserService userService = context.getBean(UserService.class);       

        // 调用对象中的方法

        List<User> list = userService.queryUserList();

        for (User user : list) {

            System.out.println(user.getUsername() + ", " + user.getPassword() + ", " + user.getPassword());

        }       

        // 销毁该容器

        context.destroy();

    }

}

总结:从以上的示例中可以看出,使用Java代码就完美的替代xml配置文件,并且结构更加的清晰。

ps: 还有一个注解@Component和@bean功能相似,都相当于xml中的<bean>,区别如下:

   1) @bean主要配合@configuration使用,作用在方法上

   2)@Component作用在类上,springboot启动时扫描此注解进行加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值