一、@service("serviceName"): 表示给当前类命名一个别名,方便注入到其余类中;java
二、@service:不加的话,默认别名就是当前类名,可是首字母小写spring
三、这些注解都是Bean,Spring容器托管ui
- 持久层:@Repository
- 业务层:@Service
- 控制层:@Controller
- 中立类:@Component (对那些比较中立的类进行注释)
四、配置自动扫描便可spa
<context:annotation-config/> <context:component-scan base-package=”com.eric.spring”>
- @Scope注解能够改变其做用范围
- spring中的Bean默认都是单例
五、@Autowired 与@Resource的区别:.net
(1)@Resourcecode
- @Resource(这个注解属于J2EE的)
- @Resource的做用至关于@Autowired
- @Resource默认按 byName自动注入
- 若是注解写在setter方法上默认取属性名进行装配
- 当找不到与名称匹配的bean时才按照类型进行装配
- 若是name属性一旦指定,就只会按照名称进行装配
- Spring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型
- 若是使用name属性,则使用byName的自动注入策略
- 若是使用type属性时则使用byType自动注入策略
- 若是name属性、type属性都不,经过反射机制使用byName自动注入策略
(2)两者均可以用来装配beancomponent
(3)均可以写在字段上,或写在setter方法上xml
(4)@Autowired对象
- @Autowired默认按类型装配
- 这个注解是属业spring
- 默认状况下必需要求依赖对象必须存在
- 若是要容许null值,@Autowired(required=false)
- @Qualifier注解(qualifier的意思是合格者)
- @Qualifier注解 应对单接口多个类实现的状况
- @Qualifier的参数名称必须为咱们以前定义@Service注解的名称之一
@Autowired @Qualifier("service")//@Qualifier的参数名称必须为咱们以前定义@Service注解的名称之一 EmployeeService employeeService;