Spring 依赖注入 + 装配Bean + 注解 + profile + 加载properties文件
2018-01-02 17:44
531 查看
依赖注入三种方式:
构造器注入:<constructor-argindex=”0” value=”value”/>Setter注入:<property name=”roleName” value=”value”/> 无参构造函数, 通过反射调用无参构造方法生成对象,同时通过反射对应的setter注入配置的值。这种方式是spring主要方式。
接口注入 :通过JNDI获取数据库连接资源
<property name=”jndiName”><value>java:comp/env/jdbc/ssm</value></property>
配置 bean 的三种方式:
. 在XML中显示配置;{装配简易值;装配集合;命名空间装配},引入第三方包或者服务类 尽量使用XML方式
. 在java的接口和类中实现配置;
. 隐式Bean的发现机制和自动装配原则。
注解装配Bean
原则:注解为主,以XML为辅1. @Component 或 @Component(value=”role”)或@Component(“role”) 注解在类上,不注解方法。Spring IOC 会把这个类扫描生成Bean实例。
@Value(“role_name”), 注解在属性字段上,代表的是值的注入
2. @ComponentScan(basePackages={},basePackageClasses={})
basePackages 可以配置多个包,会扫描对应的包和子包。basePackageClasses 配置多个类,spring会根据配置的类所在的包,为包和子包进行扫描装配对应配置的bean。建议使用basePackageClasss(移动包时,IDE会抱错提示)。
3. @Autowired(required=false)自动装配,按类型查找bean,Autowired可以配置属性也可以配置方法,bean的setter方法也可以使用它来完成注入, 还可以装载带有参数的构造方法类。
4. @Primary(优先使用该类注入) @Qualifier (按名称查找) 消除注入歧义
5. @Bean(name=”dataSource”,initMethod=”init”, destroyMethod=”myDestroy”) 注解到方法上 ,将方法返回的对象作为Spring的Bean, 存放在IOC容器。
6. @ImportResource({“classpath:spring-dataSource.xml”})引入spring-data.xml所定义的Bean等资源
7. @Import({ApplicationConfig2.class,ApplicationConfig3.class})引入其他的配置类,相当于引入其他Sprng.xml配置文件。
使用profile
8. @Profile(“dev”) 使用profile,也可以在xml中配置<beans profile=”test”>…….</beans>
.使用profile,测试中例子@ActiveProfiles(“dev”) 注解在 类上
.Java虚拟机参数spring.profiles.active 启动的profile,如果配置了他,那么default失效;
.Java虚拟机参数spring.profile.default默认启动的profile。
.Spring boot 中可以在application.properties中指定spring.profiles.active
.spring mvc 中 可以设置web环境参数 或者 DispatcherServlet参数,如下:
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>test</param-value>
</context-param>
或:
<init-param>
<param-name>spring.profiles.active</param-name>
<param-name>test</param-name>
</init-param>
加载properties文件
9. @PropertySource(value={“classpath:database-config.properties”},ignoreResourceNotFound=true) 会加载对应的配置文件,ignoreResourceNotFound=true找不到文件会忽略它,默认是false,抛出异常· 使用: applicationContext.getEnvironment.getProperty(“jdbc.database.url”),通过 环境来获取对应的配置属性。
· 使用属性占位符${},需要一个@Bean类, 比如 PropertySourcesPlaceholderConfigurer,
然后就可以使用,例如@Value(“${jdbc.database.driver}”)。 也可以在XML指定<context:property-placeholderignore-resource-not-foud=”true” location=”classpath:database-config.properties”/>
10. @Conditional 条件化装配Bean,例如:@Conditional({DataSourceCondition.class})DataSourceCondition需要实现接口Condition的matches方法。条件满足时才装配Bean
相关文章推荐
- 框架 day36 Spring3 入门,DI依赖注入,装配bean基于xml/注解, 整合Junit4,配置约束自动提示
- 用spring的注解建立bean与bean之间的关系组件装配及自动注入依赖对象
- Spring 3.0 学习-DI 依赖注入_创建Spring 配置-使用一个或多个XML 文件作为配置文件,使用自动注入(byName),在代码中使用注解代替自动注入,使用自动扫描代替xml中bea
- 【JavaWeb-23】spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配
- Spring 基于注解装配依赖对象和引用外部文件读取数据库配置
- Spring架构学习(2)通过Properties文件实现依赖注入
- SSH学习九 依赖注入及加载Spring配置文件的方法
- spring boot:使用@ConfigurationProperties注解加载配置文件
- 使用Spring注解方式注入properties文件乱码解决
- Spring 依赖注入:自动注入properties文件中的配置
- 使用Spring注解方式注入properties文件内容,并配合Junit4+Spring做单元测试
- Spring 全注解配置 bean 和 调用 (7) properties文件注入
- 使用Spring注解方式注入properties文件内容,并配合Junit4+Spring做单元测试
- spring加载properties文件,并将属性值注入到指定类的指定成员变量
- Spring中加载 .properties 文件在java注解中使用及xml的el表达式使用
- Spring 依赖注入:自动注入properties文件中的配置
- spring+mybatis 注入properties文件中属性失败导致datasource加载失败的原因和解决
- spring注解注入properties配置文件
- 关于tomcat下spring无法加载依赖jar中properties文件的原因分析