基于注解初始化IoC容器

创建s07
pom.xml文件的依赖不变
创建applicationContext.xml文件,引入schema。
基于注解的schema和基于xml的schema不一样
最典型的是增加了一个名为context的命名空间
命名空间:就像是java中的包名一样。区分和xml的bean标签
xmlns:context="http://www.springframework.org/schema/context"
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
</beans>
context:component-scan组件扫描。具体的用意是在IoC容器初始化时自动扫描四种组件类型注解并完成实例化@Repository、@Service、@Controller、@Component
context:component-scan下的属性base-package代表基准包是哪个,扫描哪个包下面所有的类
设置Dao实现类
组件类型注解默认beanId为类名首字母小写。此处beanId=userDao
也可以进行手动设置beanId。注解之后加括号双引号。默认是value属性,例@Repository(" ")
import org.springframework.stereotype.Repository;

// 用于说明当前对象用于数据持久化。增删改查
// 组件类型注解默认beanId为类名首字母小写。beanId=userDao
// 也可以进行手动设置@Repository("")默认是value属性
@Repository
public class UserDao {
}

 

IoC容器初始化以后,我们可以将容器内对象打印出来
context.getBeanDefinitionNames()获取到容器内所有有效的beanId。返回一个id数组。getBean()打印的是bean对象。
        String[] ids = context.getBeanDefinitionNames();
        for(String id:ids){
            System.out.println(id + " ");
        }

 

这四类注解都是单例的
posted @ 2020-09-15 22:47  看清楚了吗  阅读(172)  评论(0编辑  收藏  举报