由于前两天感冒,说是第二天更的注解方式实现IoC一直没写,现在补上去。
注解方式相对来说比较简单。
注解可以使用在类、方法、属性上。
格式为:@注解名称(属性名称=属性值)
- 第一步:导入jar包
- 第二步:编写xml配置文件。
- 在相关类中加入注解
下面详细说一说。创建好xml后,加入Spring的约束,然后加上下面这行代码就ok了。这行代码是用来开启注解扫描器,这样,在配置文件加载时,就可以找到注解了。base-package属性的值是要扫描的包的路径。
//xml配置
<context:component-scan base-package="com.test.dao"></context:component-scan>
写完配置文件后,就可以开始添加注解了。创建对象的注解一共有四种,2、3、4都是由1衍生的,是为了以后对它们进行扩展,不过目前功能都是一的,不过建议按照分类使用。
- @Component
- @Controller:web层
- @Service:业务层
- @Repository:持久层
@Component(value = "user")
public class User {
public void add(){
System.out.println("add...");
}
}
这样就实现了User对象的创建。那怎么注入属性呢?
注解方式的属性注入也有两种方式,第二种是比较常用的。
- @Autowired
- @Resource(name=value)
@Component(value = "userdao")
public class UserDao {
public void add(){
System.out.println("dao...");
}
}
--------------------------------------------------
//不需要set方法,在dao属性上使用注解完成注入
public class UserService {
//自动注入
@Autowired
//指定注入(必须和@Component的value值对应!!!)
@Resource(name="userDao")
private UserDao userdao;
}
这样就完成了在UserService中注入userdao对象。
Spring的两种注入方式可以混合使用:使用配置文件创建对象,注解负责注入属性。