1、舍弃了原来的spring.xml配置文件,用纯注解的方式实现。
2、简单步骤:
//加这个注解,就是让这个类加载到容器中
@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 + ''' +
'}';
}
}
//@Configuration: 代表这个类也会被注册到spring容器中
// 相当于原来的spring.xml,代表这是一个配置类
@Configuration
@ComponentScan("com.hr.pojo")
public class Config {
//通过方法注册一个bean,这里的返回值就Bean标签中的class属性,方法名就是bean的id!
@Bean
public User getUser(){
return new User();
}
}
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
User getUser = (User) context.getBean("getUser");
System.out.println(getUser.getName());
}
二、AOP(我们在不改变原来的代码的情况下,实现了对原有功能的增强,这是AOP中最核心的思想)
1、动态代理:AOP的底层机制就是动态代理!
2、动态代理的代理类是动态生成的 ,静态代理的代理类是我们提前写好的。
3、动态代理分为两大类:基于接口的动态代理(JDK动态代理)、基于类的动态代理(cglib);



