依赖注入DI有4种方式:
接口注入
setter注入
构造器注入
注解注入html
原文:http://www.javashuo.com/article/p-vvbomzgm-ec.htmljava
不须要在Spring配置文件中声明Bean实例,但要在原有的基础上进行如下3个改变:程序员
### 一、 定义Bean@Component
在类上使用注解@Component,该注解的value属性用于指定该bean的id值。
另外,Spring还提供了3个功能基本和@Component等效的注解:
@Repository 用于对DAO实现类进行注解
@Service 用于对Service实现类进行注解
@Controller 用于对Controller实现类进行注解
之因此建立这三个功能与@Component等效的注解,是为了之后对其进行功能上的扩展,使它们再也不等效。web
在类上使用注解@Scope,其value属性用于指定做用域。默认为singleton。spring
@Scope默认是单例模式,即scope="singleton"。编程
另外scope还有prototype、request、session、global session做用域。scope="prototype"多例服务器
全局有且仅有一个实例session
每次获取Bean的时候会有一个新的实例app
request表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效,测试
session做用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
global session做用域相似于标准的HTTP Session做用域,不过它仅仅在基于portlet的web应用中才有意义。Portlet规范定义了全局Session的概念,它被全部构成某个 portlet web应用的各类不一样的portlet所共享。在global session做用域中定义的bean被限定于全局portlet Session的生命周期范围内。若是你在web中使用global session做用域来标识bean,那么web会自动当成session类型来使用。
request、session、global session使用的时候首先要在初始化web的web.xml中作一些配置:请参考原文
————————————————
原文连接:https://blog.csdn.net/tzbugs/...
在属性上使用注解@Value,该注解的value属性用于指定要注入的值。
使用该注解完成属性注入时,类中无需setter。固然,若属性有setter,则也可将其加到setter上。
须要在域属性上使用注解@Autowired,该注解默认使用按类型自动装配Bean的方式。
使用该注解完成属性注入时,类中无需setter。固然,若属性有setter,则也可将其加到setter上。
须要在域属性上联合使用注解@Autowired与@Qualifier。@Qualifier的value属性用于指定要匹配的Bean的id值。一样类中无需setter,也可加到setter上。
@Autowired还有一个属性required,默认值为true,表示当匹配失败后,会终止程序运行。若将其值设置为false,则匹配失败,将被忽略,未匹配的属性值为null。
Spring提供了对JSR-250规范中定义@Resource标准注解的支持。@Resource注解既能够按名称匹配Bean,也能够按类型匹配Bean。使用该注解,要求JDK必须是6及以上版本。
(1)按类型注入域属性
@Resource注解若不带任何参数,则会按照类型进行Bean的匹配注入。
(2)按名称注入域属性
@Resource注解指定其name属性,则name的值即为按照名称进行匹配的Bean的id。
在方法上使用@PostConstruct,与原来的init-method等效。在方法上使用@PreDestroy,与destroy-method等效。
JavaConfig,是在Spring 3.0开始从一个独立的项目并入到Spring中的。JavaConfig能够当作一个用于完成Bean装配的配置文件,只不过是程序员使用Java本身编写的。
建立一个普通POJO类做为测试类。
须要在三个位置添加注解。
在类头添加两个注解:
@RunWith(SpringJUnit4ClassRunner.class):用于指定运行环境
@ContextConfiguration(locations=“”):用于指定配置文件位置
将要测试的对象声明为成员变量,并在其头上添加注解。
总结:注解与XML共同使用注解的好处是,配置方便,直观。但其弊端也显而易见:以硬编码的方式写入到了Java代码中,其修改是须要从新编译代码的。
XML配置方式的最大好处是,对其所作修改,无需编译代码,只需重启服务器便可将新的配置加载。
若注解与XML同用,XML的优先级要高于注解。这样作的好处是,须要对某个Bean作修改,只需修改配置文件便可。固然,此时,Bean类要有setter或构造器。
原文连接:http://www.javashuo.com/article/p-vvbomzgm-ec.html