Java全栈课程之Spring详解——使用Java的方式配置spring

我们现在要完全不使用spring的xml配置了,全权交给Java来做!JavaConfig式spring的一个子项目,在spring4之后,它成为了一个核心功能。

一、实体类:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//这里这个注解的意思,就是说明这个类被spring接管了,注册到了容器中。
@Component
public class User {
    private String name;

    public String getName() {
        return name;
    }
    //属性注入值
    @Value("小张")
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

二、配置文件

import com.sun.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;

//这个也会被spring容器托管,注册到容器中,因为它本身就是一个@Component,
// @Configuration代表这是一个配置文件,就和我们之前看到的beans.xml一样
@Configuration
@ComponentScan("com.sun.pojo")
@Import(MyConfig2.class)
public class MyConfig {
    //注册一个bean就相当于之前写的一个bean标签,
    // 这个方法名字就相当于bean标签的id属性,
    // 这个方法的返回值,就相当于bean标签中的class属性
    @Bean
    public User getUser(){
        //就是返回要注入到bean的对象!
        return new User();
    }
}

三、测试类

import com.sun.config.MyConfig;
import com.sun.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class MyTest {
    public static void main(String[] args) {
        //如果完全使用了配置类方式去做,我们就只能它通过AnnotationConfig上下文来获取容器,通过配置类的class对象加载
        ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
        User getUser = (User) context.getBean("getUser");
        System.out.println(getUser.getName());
    }
}

这种纯Java的配置方式,在spring Boot中随处可见!

你可能感兴趣的:(Java全栈开发,java,spring,开发语言)