Java项目通过 java 类配置 spring

本文使用的项目和文章java 项目中使用 sping (XML) 中使用的项目结构一模一样,所以在这就不贴重复的代码了。

看一下项目结构可以发现只是在默认包下多了一个 MyConfig 类。在一般情况下 spring 的配置类都会写成 **Config,方便识别。

可能有人看到了这个项目中还有 Bean.xml 文件... 不是说用 java 类配置 spring 吗。这个的确是用 java 类配置,只是因为这个项目是我从 xml 那个项目复制过来的,同时 Bean.xml 也无关紧要,程序并不会运行它,所以我就懒得删除了。

看一下 MyConfig 配置类的代码吧

 

@Configuration
public class MyConfig {
 
             @Bean
             public Userservice userservice() {
                    Userservice userservice = new Userservice();
                    userservice.setUser(user());
                    userservice.setUserDAO(userDAOImp2());
                    return userservice;
             }
             
             @Bean
             public User user() {
                    User user = new User();
                    user.setAge(20);
                    user.setName("小白");
                    return user;
             }
             
             @Bean(name="u1")
             public UserDAO userDAOImp1() {
                    return new UserDAOImp1();
             }
             
             @Bean
             public UserDAO userDAOImp2() {
                    return new UserDAOImp2();
             }
}

 

@Configuration 注解表示告诉spring我这个类是 spring 的配置文件, 来这里找 bean 资源。

@Bean 注解表示我这个方法代表一个 bean 资源, 让 spring 装配。

在配置类中给 bean 资源的成员变量赋值和平常的 java 赋值没有什么区别, 直接在方法里写就行了。 就是注意set的值如果是个bean资源的话, 需要写这个 bean 资源在配置类中定义的方法。

 

然后是UserMain

public class UserMain {
 
      public static void main(String[] args) {
             
             AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
 
             Userservice userservice =context.getBean("userservice",Userservice.class);
             
             userservice.add();
 
      }
 
}

这里使用的容器变成 AnnotationConfigApplicationContext 了, 参数写我们刚才写的配置文件。这样使用 java 配置 spring 的项目就完成了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值