1、命名空间
使用Annotation的方式,需要在spring的配置文件中配置命名空间。命名空间中,隐式地注册了多个对注解进行解析处理的处理器。
a、引入context命名空间
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
b、打开注解功能
<context:annotation-config />
2、@Autowired与@Resource
@Autowired与@Resource在使用上是没有任何区别的。即可以放于属性声明之前,也可以放于属性的setter方法头上。
只是@Autowired注解是由Spring提供的,它是按类型进行装配。而@Resource是由JavaEE提供的,它是按属性的名字进行装配,找不到名字后再找类型按类型装配。
@Autowired是推荐使用的。
3、具体使用:
UserDao与UserDaoImpl:
-
publicinterfaceUserDao{
-
publicvoidsave();
-
}
-
publicclassUserDaoImplimplementsUserDao{
-
publicvoidsave(){
-
System.out.println("保存用户...");
-
}
-
}
-
UserService接口及其实现类UserServiceImpl:
-
publicinterfaceUserService{
-
publicvoidaddUser();
-
}
-
在UserServiceImpl中使用注解把UserDao对象注入进来使用。
public class UserServiceImpl implements UserService {
//1
@Autowired private UserDao userDao;
public UserServiceImpl(UserDao userDao, String username) {
this.userDao = userDao;
this.username = username;
}
public void addUser() {
System.out.println(username);
userDao.save();
}
}
在上面注释1的地方还可以替换成以下几种方式:
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Resource private UserDao userDao;
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
配置文件:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<!-- 配置文件中,UserDaoImpl与UserServiceImpl是相互对立,没有任何关系的。-->
<bean id="userDao" class="cn.framelife.spring.dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="cn.framelife.spring.service.impl.UserServiceImpl"></bean>
<beans>
4、注意:
1、使用注解功能,必须是JDK5.0及以上版本。
2、一般来说,基本数据类型的属性不使用Annotation的方式注入,Annotation只用于Bean的装配。而且,如果不是必须,基本数据类型的属性一般不使用注入的方式。
分享到:
相关推荐
第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 依赖注入 4.3.1 属性注入 4.3.2 构造函数注入 4.3.3 工厂...
第4章 在IoC容器中装配Bean 4.1 Spring配置概述 4.1.1 Spring容器高层视图 4.1.2 基于XML的配置 4.2 Bean基本配置 4.2.1 装配一个Bean 4.2.2 Bean的命名 4.3 依赖注入 4.3.1 属性注入 4.3.2 构造函数注入 4.3.3 工厂...
#### 第二章 Spring 的 IOC ##### 一、IOC 的概念 **IoC (Inversion of Control)**,即控制反转,是一种设计思想,其目的是降低软件模块之间的耦合。在 Spring 中,IOC 主要体现在依赖注入(DI)上,即一个类不再...
### 第二章:插件化框架设计 **第一节:Class文件与Dex文件的结构解读** - **Class文件**:Java字节码文件,用于表示由Java编译器编译后的类。Class文件中包含了类的定义、字段、方法以及接口等信息。 - **Dex文件...
- **IOC(Inversion of Control,控制反转)**:一种设计模式,通过将对象创建的权利交给第三方容器来实现,可以降低代码间的耦合度。 - **DI(Dependency Injection,依赖注入)**:一种实现IOC的技术手段,通过...
恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。 整个工程目录结构如下: 除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! mybatis实战教程(mybatis in action)之二:以...