JavaConfig
- 让Spring项目全权交给Java来做,拜托了xml配置文件
- JavaConfig是Spring的子项目,Spring4之后,成为了一个核心功能
环境搭建
- 创建新模块,选择Spring
- 创建文件夹config,配置UserBean
package com.bkms.config;
import com.bkms.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration//该注释修饰的也会交由Spring容器托管,因为该容器本身也是@Component
//@Configuration也是配置类,和beans.xml是一样的
@Import(MyConfig2.class)//导入MyConfig2的bean
public class MyConfig {
//@Bean注解就相当于在xml文件中的bean标签
//方法的名字就相当于bean标签中的id属性
//方法中的返回值就相当于bean标签中的class属性
@Bean
public User getUserInstance(){
return new User();//就是返回要注入到bean的对象
}
}
- 测试代码
import com.bkms.config.MyConfig;
import com.bkms.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User userInstance = (User) context.getBean("getUserInstance");
System.out.println(userInstance.getName());//null
}
}
- 这种JavaConfig配置方式在SpringBoot中随处可见
代理模式
- SpringAOP的底层
- SpringAOP和SpringMVC是很重要的知识点
- 分为静态代理和动态代理
静态代理模式
角色分析(以租房举例)
- 抽象角色(租房这个行为,用接口表示)
- 真实角色(就是房东)
- 代理角色(就是中介)
- 客户(就是要租房的人)
使用代理模式的好处
- 使真实角色操作更加纯粹,不用关注多余的业务
- 实现了业务的分工
- 公共业务需要扩展的时候,方便集中管理
使用代理模式的缺点
- 一个真是角色对应一个代理角色,真实角色多的话,代理角色会翻倍
public interface Rent {
public void rent();
}
public class Host implements Rent {