SpringIOC注入
阅读原文时间:2023年07月09日阅读:1

在lagou的训练营的学习历程

SpringIOC实例化Bean的三种方式:
1.使用无参构造器
2.静态方法
3.实例化方法。他要先实例化创建类(和2的区别),再调用。

XML注入属性
DI依赖注入,根据实体类的属性的名称使用name属性注入,index按照对应位置
(set注入使用bean使用ref,一般属性用value。)


-






-
- -
- - set1 set2
- - value1 value2

XML和注解模式注入
@Componene注解去注解关联的bean标签,在类上加注解
针对不同的层面有三个别名@Controller@Service@Reposittory这四个注解完全一样
一个区分而已。
@Autowired加在属性上按照类型注入(按照你给的类型)
如果一个接口有多个实现类可以增加@Qualifier使用制定具体id
@Resource按照名称注入时jdk的注解。jdk11移除(不建议使用)使用spring推荐的@Autowired
使用注解要使用配置开启注解扫描。标签

// @Autowired 按照类型注入 ,如果按照类型无法唯一锁定对象,可以结合@Qualifier指定具体的id
@Autowired
@Qualifier("accountDao")
private AccountDao accountDao;

纯注解,使用java配置类
使用@Configuration标志这个类为配置类
使用@ComponentScan扫描配置
@PropertySourrce配置外部的配置(jdbc配置文件)
@Value变量赋值
@Bean

// @Configuration 注解表明当前类是一个配置类
@Configuration
@ComponentScan({"com.lagou.edu"})
@PropertySource({"classpath:jdbc.properties"})
/*@Import()*/
public class SpringConfig {

@Value("${jdbc.driver}")  
private String driverClassName;  
@Value("${jdbc.url}")  
private String url;  
@Value("${jdbc.username}")  
private String username;  
@Value("${jdbc.password}")  
private String password;

把返回的对象加入ioc容器

多个配置类可以使用improt标记一个为启动入口。
javase启动 启动类加载
web启动xml内的监听器