Spring 依赖注入 + 装配Bean + 注解 + profile + 加载properties文件

依赖注入三种方式:

构造器注入:

Setter注入: 无参构造函数, 通过反射调用无参构造方法生成对象,同时通过反射对应的setter注入配置的值。这种方式是spring主要方式。

接口注入 :通过JNDI获取数据库连接资源

    java:comp/env/jdbc/ssm

配置 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中配置…….

.使用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参数,如下:

               

spring.profiles.active

test

                                               

                                                或:

                                               

                                                                spring.profiles.active

                                                                test

                                               

 

加载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指定

10.  @Conditional 条件化装配Bean,例如:@Conditional({DataSourceCondition.class})DataSourceCondition需要实现接口Condition的matches方法。条件满足时才装配Bean

你可能感兴趣的:(spring)