美文网首页
spring(2)注解与基与注解的IOC实例

spring(2)注解与基与注解的IOC实例

作者: 机智的老刘明同志 | 来源:发表于2020-07-03 17:56 被阅读0次

3. 注解
    3.1 @Component(把当前类对象存入spring容器中)       
    3.2 @Controller    @Service    @Repository  
    3.3 @Autowired + @Qualifier(在spring容器中寻找需要注入的类)
    3.4 @Resource(name = "XXX")
    3.5 @PreDestroy    @PostConstruct    @Scope
4. 基于注解的IOC实例
5. 对基于注解的IOC实例进行优化
    5.1 @Configuration(指定当前类是一个配置类)
    5.2 @ComponentScan(创建容器时要扫描的包)
    5.3 @Bean(把当前方法的返回值存入spring容器中)
    5.4 @Import(导入其他的配置类)
    5.5 @PropertySource(指出properties文件的位置)
    5.6 优化
    5.7 @value(将外部配置文件的值动态注入到Bean)
    5.8 @RunWith(SpringJUnit4ClassRunner.class) + @ContextConfiguration 

3. 注解

    3.1 @Component(把当前类对象存入spring容器中)

        属性:默认值是当前类名,且首字母改小写。
        作用:用于把当前类对象存入spring容器中。

        但是使用时需要告知spring在创建容器时要扫描的包
        <context:component-scan base-package="com.liuming"></context:component-scan>

    3.2 @Controller    @Service    @Repository

        @Controller:一般用在表现层
        @Service:一般用在业务层
        @Repository:一般用在持久层
         作用和属性等同于@Component       

    3.3 @Autowired + @Qualifier(在spring容器中寻找需要注入的类)

        @Autowired:自动按照类型注入(容器为map结构,注入时在map结构中寻找相同的类型。但一个接口如果有两个实现类时,只使用@Autowired会报错)
        @Qualifier:指明要注入类的id(在给类成员注入时,需要配合@Autowired一起使用,但给方法参数注入时,可以独立使用)

    3.4 @Resource(name = "XXX")

        @Resource:直接按照bean的id注入,不是spring的注解,而是JDK的注解

    3.5 @PreDestroy    @PostConstruct    @Scope

        @PostConstruct在bean创建完成并且属性赋值完成后来执行初始化方法。
        @PreDestroy注解在容器销毁bean之前通知进行清理工作。
        @Scope用于指定bean的作用范围

4. 基于注解的IOC实例

        1. 使用注解将service类存到spring容器中。在容器中寻找需要注入的参数 accountDao

        2. 将accountDao存入spring容器中,同样runner使用注解自动注入。

        3. 注入数据源。

        4. 测试类进行测试。

5. 对基于注解的IOC实例进行优化

    5.1 @Configuration

        作用:指定当前类是一个配置类
        当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以省略。

        关于xml与注解的选择:自己写的类建议使用注解,jar包中的类建议使用xml

    5.2 @ComponentScan

        作用:用于通过注解指定spring在创建容器时要扫描的包
        等价于<context:component-scan base-package="com.liuming"></context:component-scan>

    5.3 @Bean

        作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
        属性:name 用于指定bean的id,默认值为当前方法的名称

    5.4 @Import

        作用:用于导入其他的配置类
        当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类

    5.5 @PropertySource

        作用:用于指定properties文件的位置
        关键字:classpath,表示类路径下

    5.6 优化

        1. 新增config.SpringConfiguration类取代bean.xml文件

config.SpringConfiguration

        2. 新增JdbcConfig进一步解耦,这里注意@Qualifier的新用法

config.jdbcConfig.properties

    @Value

        作用:通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值

    5.8 @RunWith(SpringJUnit4ClassRunner.class) + @ContextConfiguration

        应用程序的入口:main()
        junit单元测试中,没有main()也能执行,这是因为junit集成了一个main(),该方法会判断当前测试类中哪些方法有@Test注解
        junit不会管我们是否采用了spring框架,在执行测试方法时候,junit根本不知道我们是不是使用了spring,所以也就不会为我们读取配置文件/配置类创建spring核心容器
        由上可知:当测试方法执行时,没有Ioc容器,就算写了Autowired注解,也无法注入

        @RunWith:用于指定junit运行环境,是junit提供给其他框架测试环境接口扩展。
        为了便于使用spring的依赖注入,spring提供了SpringJUnit4ClassRunner作为Junit测试环境
        @ContextConfiguration Spring整合JUnit4测试时,使用注解引入多个配置文件

相关文章

  • spring(2)注解与基与注解的IOC实例

    3. 注解3.1 @Component(把当前类对象存入spring容器中) 3.2@Controller@S...

  • Dubbo注册Provider

    一、与Spring的结合 首先spring注册实例让IOC容器管理实例的方式有注解方式,xml的方式。Dubbo中...

  • Dubbo注册Service

    1 与Spring的结合 首先spring注册实例让IOC容器管理实例的方式有注解方式,xml的方式。Dub...

  • spring基于注解的ioc

    spring基于注解的ioc 教学内容 Spring中的ioc常用注解 案例使用xml和注解方式实现单标的CRUD...

  • Spring框架的IOC功能之注解

    Spring框架的IOC功能之注解的方式 Spring框架的IOC之注解方式的快速入门 步骤一:导入注解开发所有需...

  • Spring AOP编程实战

    Spring框架的IOC功能之注解的方式 Spring框架的IOC之注解方式的快速入门 Spring框架中Bean...

  • 2019-08-10 spring

    spring 概述和基于 xml 的 ioc 配置基于注解的 ioc 和 ioc 案例基于注解的 ioc 和 ao...

  • @Lazy什么时候用

    @Lazy 注解 Spring IoC (ApplicationContext) 容器一般都会在启动的时候实例化所...

  • spring-ioc 注解

    spring-ioc 注解使用 配置扫描路径 添加注解 @Component("user") 使用 Spring ...

  • Spring Bean 实例化过程(一)

    Spring Bean 实例化过程(一) Spring IOC 就是将Xml或者配置文件、注解等定义的Bean来实...

网友评论

      本文标题:spring(2)注解与基与注解的IOC实例

      本文链接:https://www.haomeiwen.com/subject/vornfktx.html