发表更新7 分钟读完 (大约1009个字)
Spring笔记02
35.测试基于XML的IOC案例
- 在xml配置service和dao,在IOC中实现增删改查
36.测试基于XML的IOC案例之编写spring的ioc配置
- 在XML中配置注入
- bean service
- bean dao
- bean runner
- bean dataSource
- property driver
- … jdbcUrl
- … user
- … password
37.测试基于XML的IOC案例之案例准备
38.注解IOC案例-把自己编写的类使用注解配置
- 只有唯一对象,使用autowired可以没有set,为什么
- @Repository
- @Autowired
- <context:component-scan base-package=”cn.tedu.test”/>
- 测试
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
- 导入spring整合junit的jar包坐标>spring-test
- 使用junit提供了注解把原有的main方法替换,替换成spring提供的
- @Runwith
- 加在类上@Runwith(SpringJUnit4ClassRunner.class)
- 告知spirng的运行器,spring和ioc创建是基于xml还是注解的,并且说明位置
- @ContextConfiguration
- 加载类上@ContextConfiguration(classes=SpringConfiguration.class)
- Location:执行xml文件的位置,加上classpath关键字,表示在类路径下
- classes:指定解析类的位置
- 当使用spring5.x的版本时,要去junit的jar必须是4.12及以上
- 此报错只有在run类时才会出现