⑤. @Autowired:是按照数据类型从spring容器中进行匹配的
说明:
(1). 自动按照类型注入。只要有唯一类型匹配就能注入成功
(2). 如果注入的bean在容器里不唯一时,它会把变量名称作为bean的id在容器里查找,也能查找成功。如果没有找到一致的bean的id,则报错。当我们使用注解注入时,set方法就不是必须的
⑥. @Qualifier:是按照id值从容器中进行匹配的,但是此处 @Qualifier要结合@Autowired使用
@Autowired @Qualifier("fooFormatter") private Formatter formatter;
⑦. @Resource
找到@Resource注解以后,判断该注解name的属性是否为""(name没有写)
如果没有写name属性,则会让属性的名称的值和spring中ID的值做匹配,如果匹配成功则赋值,如果匹配不成功,则会按照类型进行匹配,如果匹配不成功,则报错
如果有name属性,则会按照name属性的值和spring的bean中ID进行匹配,匹配成功,则赋值,不成功则报错
③. Spring新注解
- ①. Spring新注解集合
②. 代码展示
//标志该类是Spring的核心配置类 @Configuration /*<!--配置组件扫描--> <context:component-scan base-package="com.xiaozhi"></context:component-scan>*/ @ComponentScan("com.xiaozhi") /*<!--加载外部的properties文件--> <context:property-placeholder location="classpath:jdbc.properties"/>*/ @PropertySource("classpath:jdbc.properties") public class SpringConfiguration { @Value("${jdbc.driverClassName}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; //Spring会将当前方法的返回值以指定名称存储到Spring容器当中 @Bean("druidDataSource") public DataSource getDataSource(){ DruidDataSource druidDataSource= new DruidDataSource(); druidDataSource.setDriverClassName(driverClassName); druidDataSource.setUrl(url); druidDataSource.setUsername(username); druidDataSource.setPassword(password); return druidDataSource; } }
@Test public void test2() throws SQLException { ApplicationContext app=new AnnotationConfigApplicationContext(SpringConfiguration.class); DruidDataSource bean = app.getBean(DruidDataSource.class); System.out.println(bean.getConnection()); }