您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐