前两篇文章我总结了通过XML方式装配bean的实现方式,虽然比较简单,但是需要配置很多,很多时候我们都会使用注解进行装配.使用注解的方式可以减少XML的配置,既能实现XML的功能,还提供了自动装配功能,更加有利于开发,这就是传说中的“约定优于配置”原则,简称CoC(Convention over Configuration).spring提供了两种方式让spring ioc容器发现bean: 组件扫描:通过定义资源的方式,让spring ioc容器扫描资源所在的包,从而装配bean: 自动装配:…
在spring ioc容器中,spring要先完成bean的定义和生成,然后需要需要注入的资源,在上一篇的扫描组件中就是这样实现的.而自动装配中我们只需要定义和生成一个bean,发现bean的过程将由spring自己完成,它是怎么发现的呢?答案是通过注解@Autowired,这个单词的意思就是自动装配,当我们在一个资源上使用了这个注解之后,spring如果发现这个注解,就会根据对应的类在生成的bean中找到对应的目标完成自动装配,不需要我们自己定义一个配置类告知spring需要扫描的包路径等信息…
4,开启组件扫描细节配置…
一.依赖注入的三种方式      在实际环境中实现IoC容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来.另一类则是依赖注入.一般而言,依赖注入可分为3中方式: 构造器注入 setter注入 接口注入 构造器注入和setter注入是主要的注入方式,而接口注入是从别的地方注入的方式,比如,在Web工程中,配置的数据源往往是通过服务器(比如tomcat) 去配置的,这个时候可以用JNDI(Java Naming and Directory interface)的…
目录 注解形式配置应用IOC 1. 组件自动扫描 2. 组件依赖:为bean添加注解,实现自动注入 3. Spring IOC应用小结 注解形式配置应用IOC 在类定义.方法定义.成员变量定义前使用,格式:@注解标记名 理解与回顾: 使用Spring IOC 管理对象(定义bean.bean的控制(scope/init-method等属性))及对象关系(DI: set注入/构造器注入). 控制反转:改变了对象获取方式. new方式获取 --> spring容器创建对象之后注入进来使用.降低了耦合…
在上一篇控制反转中我们看到了依靠一个Bean文件来实现对代码的控制,可谓十分便捷,再也不用去实例化对象了,2333~~~ 1.手动装配 <bean id="todo" class="com.eco.daoimp.Usertodo1"></bean> <!--定义Userservice类内部接口的引用(userdao)指向具体的实现类对象(Usertodo1) --> <bean id="userservice&qu…
Spring从两个角度来实现自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的bean. 自动装配:Spring自动满足bean之间的依赖. 案例:音响系统的组件.首先为CD创建CompactDisc接口及实现类,Spring会发现它并将其创建为一个bean.然后,会创建一个CDPlayer类,让Spring发现它,并将CompactDisc bean注入进来. 创建CompactDisc接口: package soundsystem; public interface Comp…
Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系 Spring提供了三种主要的装配机制: 在XML中进行显式配置 在Java中进行显式配置 隐式的bean发现机制和自动装配 1自动化装配beanSpring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring 会自动发现应用上下文中所创建的bean 自动装配(autowired):Spring自动满足bean之间的依赖@Autowired 开启组件扫描的2种方法: XML中配置…
实现自动装配需要用注解:注解分为 spring规范和java规范 ,java规范需要引入javax.inject 包 ,使用maven,直接引入. 从中可以看到 @Named @Inject属于java规范,@Component  @Autowired @Resource属于spring注解 @Named大致等效于@Component 而@Inject和@Autowired也相似,但是@Inject要强制注入,@Autowired(required=false)可以选择略过不报异常 实例: 1.…
1 首先将spring依赖的包全部导入 2 建立测试接口 public interface CompactDisc { void play(); } 3 具体的类实现接口 import org.springframework.stereotype.Component; import morningstar.spring.CompactDisc; /* * @Component 注解用在类上表明该类会作为组件类使用,并且告知spring要为这个类创建bean*/ @Component public…