Spring笔记02

35.测试基于XML的IOC案例

  • 在xml配置service和dao,在IOC中实现增删改查

36.测试基于XML的IOC案例之编写spring的ioc配置

  • 在XML中配置注入
    • bean service
      • property name ref
    • bean dao
      • property name ref
    • bean runner
      • constructor-arg ref
    • bean dataSource
      • property driver
      • … jdbcUrl
      • … user
      • … password

37.测试基于XML的IOC案例之案例准备

38.注解IOC案例-把自己编写的类使用注解配置

  • 只有唯一对象,使用autowired可以没有set,为什么
  1. @Repository
  2. @Autowired
  3. <context:component-scan base-package=”cn.tedu.test”/>
  4. 测试

39.Spring的新注解-Configuration和componentScan

如何解决xml文件和注释同时存在,并且查询数据库语句冗余的问题

  • @Configuration
    • 作用:指定当前类是一个配置类
  • @ComponeentScan
    • 作用:用于通过注解指定spring在创建容器时要扫描的包
    • 属性
      • value:用于指定创建容器时要扫描的包,与basePackages的作用一样

40.Spring的新注解-Bean

  • @Bean
    • 作用:把当前方法的返回值当作bean对象存入spring的ioc容器中
    • 属性
      • name:用于指定bean的id,默认值为当前方法的名称
    • 细节
      • 如果使用注解配置方法时,如果方法有参数,那么spring会去容器中查找有没有可用的bean对象,查找方式和autowired注释的一样

41.AnnotaionConfigApplicationContext

  • 删除xml文件后就不能再使用ClassPathXmlApplicationContext,使用AnnotaionConfigApplicationContext.构造中传入配置类的字节码文件
  • 细节:此时的Bean为单例,如果需要多例则要添加@Scope(“prototype”)

42.Spring的新注解-Import

  • Configuration
    • 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写
    • 但是,如果在AnnotaionConfigApplicationContext的构造中不传入字节码文件,则必须要写
  • @Import
    • 作用:用于导入其他的配置类
    • 属性:
      • value:用于指定其他配置的字节码,当我们使用其他import的注解后,有import注解的类就是父配置类,导入的都是子配置类.
    • 使用了该注释后,就可以不用在scan中添加,不用在Annotaion的构造中传入,也不需要在类中声明为配置类

43.Spring的新注解-PropertySource

  • @PropertySource
    • @PropertySource(“classpath:jdbcConfig.properties”)
    • 作用:用于指定properties文件的位置
    • 属性
      • value:指定文件的名称和路径
      • 关键字:classpath:表示在类路径下

实际开发中,推荐使用xml和注解混合的开发方式,如果使用jar包中类,使用xml更好.自己开发的类使用注解更加方便

44.Qualifier注解的另一种用法

  • 在方法的参数中使用来指定在一个类中两个Bean的分别使用

45.Spring整合之junit问题分析

  • 可以使用@Before来解决代码重复初始化的问题,但是在实际开发中初始和测试是分开的工作,测试工程师可能不知道如何初始化,
  • junit单元测试中,没有main方法也可以执行,junit集成了一个main方法,该方法会判断当前测试类中那些方法有@Test注解,junit就会让Test注解的方式执行
  • junit不会管我们是否采用了spring框架,在执行方法时,junit根本不知道我们是不是使用了spring框架,所以也就不会读取配置文件或配置类创建spring核心容器
  • 当测试方法执行时,没有Ioc容器,就算写了autowired也不可以

46.Spring整合junit

  1. 导入spring整合junit的jar包坐标>spring-test
  2. 使用junit提供了注解把原有的main方法替换,替换成spring提供的
    1. @Runwith
    2. 加在类上@Runwith(SpringJUnit4ClassRunner.class)
  3. 告知spirng的运行器,spring和ioc创建是基于xml还是注解的,并且说明位置
    1. @ContextConfiguration
    2. 加载类上@ContextConfiguration(classes=SpringConfiguration.class)
      1. Location:执行xml文件的位置,加上classpath关键字,表示在类路径下
      2. classes:指定解析类的位置
    3. 当使用spring5.x的版本时,要去junit的jar必须是4.12及以上
    4. 此报错只有在run类时才会出现
作者

liukun

发布于

2020-06-22

更新于

2020-06-22

许可协议