说明:在spring4之后,想要使用注解形式,必须得要引入aop的包
本文使用java的方式配置spring,彻底抛弃了配置文件
我们先写个普通类:
package com.thxy.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component //说明这个类被spring接管了,注册到了容器中
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 + "]";
}
}
再来写个配置类:
package com.thxy.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import com.thxy.pojo.User;
//spring容器托管,注册到容器中,因为他本来就是一个@Component
//Configuration代表一个配置类,就相当于我们之前看的bean.xml
@Configuration
@ComponentScan("com.thxy.pojo")
public class ThxyConfig {
//注册一个bean,就相当于我们之前写的一个bena标签
//这个方法的名字,就相当于bean标签中的id属性
//这个方法的返回值名字,就相当于bean标签中的class属性
@Bean
public User getUser() {
return new User(); //就是返回要注入刀bean的对象
}
}
最后是测试类:
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.thxy.config.ThxyConfig;
import com.thxy.pojo.User;
public class MyTest {
public static void main(String[] args) {
//如果完全使用了配置类的方式去做,我们就只能通过AnnotationConfig 上下文来获取配置类的class对象加载
ApplicationContext Context = new AnnotationConfigApplicationContext(ThxyConfig.class);
User getUser = (User) Context.getBean("getUser");
System.out.println(getUser.getName());
}
}