步骤:
a.启用零配置扫描:注解扫描
<!-- 告诉Spring到哪些包及其子包中搜索bean类 -->
<context:component-scan base-package="org.fkjava.spring">
</context:component-scan>
b.使用注解。
Repository == dao(仓库) ---- UserRepository
配置bean的: @Component、@Controller、@Service、@Repository:标注Bean类。
不为Bean指定id,该Bean的id默认就是首字母小写。
@Scope – 指定Bean的作用域。相当于scope属性。
注入bean依赖的:
--- @Resource -配置依赖注入( Spring借用了Java EE的Annotation)。
该注解直接支持field注入。
-- @Resource默认是byType的
-- @Resource(name="xleiService") byType+byName
--- @Autowired与@Qualifier:自动装配。
@Autowired默认是byType的自动装配。
@Qualifier可指定byName的自动装配。
这两个配合成对出现。
@PostConstruct和@PreDestroy(修饰方法,Spring借用了Java EE的Annotation)。
都修饰方法,其中前者相当于init-method属性,后者相当于destory-method.
@DependsOn:强制初始化其他Bean,不管这个bean是否是延迟加载的bean.
@Lazy:指定延迟初始化。相当于lazy-init
Spring到底是零配置好?还是XML配置好?
用Spring的目的是为了解耦:将原来放在Java代码中耦合关系提取到XML配置中管理。
如果你再次使用零配置,此时组件的耦合关系交给注解管理,注解在Java代码中,当要改依赖的时候需要动代码的注解
——耦合又加强了。
--- Spring框架,一般推荐使用XML配置。
a.启用零配置扫描:注解扫描
<!-- 告诉Spring到哪些包及其子包中搜索bean类 -->
<context:component-scan base-package="org.fkjava.spring">
</context:component-scan>
b.使用注解。
Repository == dao(仓库) ---- UserRepository
配置bean的: @Component、@Controller、@Service、@Repository:标注Bean类。
不为Bean指定id,该Bean的id默认就是首字母小写。
@Scope – 指定Bean的作用域。相当于scope属性。
注入bean依赖的:
--- @Resource -配置依赖注入( Spring借用了Java EE的Annotation)。
该注解直接支持field注入。
-- @Resource默认是byType的
-- @Resource(name="xleiService") byType+byName
--- @Autowired与@Qualifier:自动装配。
@Autowired默认是byType的自动装配。
@Qualifier可指定byName的自动装配。
这两个配合成对出现。
@PostConstruct和@PreDestroy(修饰方法,Spring借用了Java EE的Annotation)。
都修饰方法,其中前者相当于init-method属性,后者相当于destory-method.
@DependsOn:强制初始化其他Bean,不管这个bean是否是延迟加载的bean.
@Lazy:指定延迟初始化。相当于lazy-init
Spring到底是零配置好?还是XML配置好?
用Spring的目的是为了解耦:将原来放在Java代码中耦合关系提取到XML配置中管理。
如果你再次使用零配置,此时组件的耦合关系交给注解管理,注解在Java代码中,当要改依赖的时候需要动代码的注解
——耦合又加强了。
--- Spring框架,一般推荐使用XML配置。