config类
package com.kuang.config;
import com.kuang.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;
//也会被托管,注册到容器中,本来就是一个Component
//类似beans.xml
@Configuration
@ComponentScan("com.kuang.pojo")
@Import(kuangconfig2.class)
public class kuangconfig {
//注册一个bean,相当于之前的bean标签
//这个方法的名字相当于id
//返回值相当于class属性
@Bean
public User User(){
return new User();
}
}
package com.kuang.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class kuangconfig2 {
}
User类
package com.kuang.pojo;
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("guojun")
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
测试类
import com.kuang.config.kuangconfig;
import com.kuang.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(kuangconfig.class);
User getUser = (User) context.getBean("User");
System.out.println(getUser.getName());
}
}
测试结果: