使用Java方式替换XML配置Spring

Posted 我永远信仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Java方式替换XML配置Spring相关的知识,希望对你有一定的参考价值。

  • 之前学习的都是使用XML来配置Spring,现在来学习一下如何使用Java的方式配置Spring。
  • 选择使用Java,那么项目中就可以不需要xml了。

配置步骤:

1、获取Spring上下文(在MyTest中)

  • new的是AnnotationConfigApplicationContext
  • 传递的参数是 (类+.class)
ApplicationContext context = new 
AnnotationConfigApplicationContext(ConfigApplicationContext.class);

2.bean的声明

  • 需要在类上加上@Component注解,代表给Spring 托管该类(相当于配置文件中的 <bean id="" class=""/>
  • @value代表注入属性值(相当于配置文件中的 property
@Component
public class User {

    private String name;

    @Value("帅哥")
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

3、配置文件(java)

  • @Configuration:定义配置类,替换xml配置文件
  • @ComponentScan(“com.yong.pojo”):指定了要扫描的包
  • @Import(Config2.class):引入其他的配置文件。
  • @Bean:将其注册到Spring容器中

上面这些属性用法和在xml中几乎相同。

@Configuration
@ComponentScan("com.yong.pojo")
@Import(Config2.class)
public class ConfigApplicationContext {

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

完整代码:

User.java 实体类

package com.yong.pojo;

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

@Component
public class User {

    private String name;

    @Value("帅哥")
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

ConfigApplicationContext.java 配置类(相当于xml)

package com.yong.config;

import com.yong.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@ComponentScan("com.yong.pojo")
@Import(Config2.class)
public class ConfigApplicationContext {

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

MyTest.java 测试类

import com.yong.config.ConfigApplicationContext;
import com.yong.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
    	//xml配置
       /* ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");*/
       //java配置,注意参数是上面的配置类
        ApplicationContext context = new AnnotationConfigApplicationContext(ConfigApplicationContext.class);
        User user = context.getBean("getUser", User.class);
        System.out.println(user.getName());
    }
}

运行结果:成功
在这里插入图片描述

这些使用注解的方式,在Spring Boot中随从可见

以上是关于使用Java方式替换XML配置Spring的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式替换片段

Spring中如何混用XML与Java装配方式

Java方式配置Spring

Java学习之:Spring的扩展配置

Spring中,使用Java配置的方式进行依赖注入

java怎么配置spring的bean