1、舍弃了原来的spring.xml配置文件,用纯注解的方式实现。
2、简单步骤:
//加这个注解,就是让这个类加载到容器中@Componentpublic 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);