Spring 基于注解的ioc案例 完全代替xml 详细分析 @Configuration注解的细节

spring注解介绍

spring中的新注解
 @Configuration
      作用:指定当前类是一个配置类
      细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写
 @ComponentScan
      作用:用于通过注解指定spring在容器中要扫描的包
      属性:
          value basePackages的作用是一样的,都是用于指定创建容器时要扫描的包
              使用此注解就等同于在xml配置了
              <!-- 告知spring在创建容器时要扫描的包 -->
     <context:component-scan base-package="bruce"></context:component-scan>
 @Bean
      作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
      属性:
          name:用于指定bean的id。当不写时,默认值时当前方法的名称
      细节:
          当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。
          查找的方式和Autowired注解的作用是一样的

一、注解service和dao

代替配置Service和配置dao
如业务层对象 Service

<bean id="accountService" class="bruce.service.impl.AccountServiceImpl"> </bean>

采用注解@Service
在这里插入图片描述

二、另起一类SpringConfiguration.class(等同于bean.xml)

该类是一个配置类,它的作用和bean.xml是一样的
在这里插入图片描述
1.@Configuration指出他是一个配置类

2.@ComponentScan告知spring要扫描的包
等同于xml中的

<context:component-scan base-package="bruce"></context:component-scan>

三、用于创建一个QueryRunner对象 创建DataSource对象

@Bean 作为bean对象存入spring的ioc容器中

1.创建一个QueryRunner

在这里插入图片描述
等同于
在这里插入图片描述

2.创建DataSource对象

resource下创建properties
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、获取容器

在这里插入图片描述

@Configuration细节

在这里插入图片描述
当配置类作为AnnotationConfigApplicationContext对象创建的参数时,@Configuration可以不写
在这里插入图片描述
但是另一个注解类不能省略
在这里插入图片描述
如果也不想写就加上就好
在这里插入图片描述
但是这就变成了兄弟关系
所以这时候可以用@Import 就不用那么花里胡哨了
在这里插入图片描述
细小配置类都Import到主配置类

猜你喜欢

转载自blog.csdn.net/weixin_42727032/article/details/104640461