舍弃spring的xml进行纯Java的注解配置

如标题所记,前面的文章都是在xml的存在下进行的注解等配置,那能不能不用xml呢?答案当然是可以的,请看如下代码。
首先是我先来一个pojo,目的是一会使用其中类的属性作为输出

@Component
public class User {
    public String name="jj";
    }

可以看到的是我依然在其上注明了@Component的注解交给spring来管理,但其实并没有什么用,正如上文所说的那样,你没有在xml中把位置给spring,它又不是神仙,自己能跑过来把这个类接管了。
那么此刻的问题是出在哪里呢?即我们需要一个东西给spring,让它知道我们要把哪些类托付给它,既然不能动用xml,那我们就用.java的方式来处理这件事情。

@Configuration
public class Config {

    @Bean
    public User user(){
        return new User();
    }
}

以上的代码就帮我们完成了这个工作,其实你可以把它变相的看成xml的存在,首先这个@Configuration的Java注解代表的是它是一个配置类,就是告诉spring这个东西你要看一眼(可以如xml那样被扫描过去),随后在xml中我们使用bean标签,这里我们就用一个@Bean的方式加上方法代表这是一个bean,那么这个bean的id是啥呢?就是这个方法的方法名,这里就是user,你可以很清晰的看到方法中返回一个new的对象。
(顺带补充,这里既然是类似xml的存在,我们自然可以用@ComponentScan这种注解,啥意思?忘了在xml中啥意思了?)
最后需要注意的是像xml在读取这个文件的时候,我们一直用的是ClassPathXmlApplicationContext类,但这里不一样

public class T {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        User user = context.getBean("user", User.class);
        String name = user.name;
        System.out.println(name);
    }
}

这是注解配置读取的类,需要注意一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值