注解方式搭建spring开发环境

写在前面:通过前两篇文章,已经学习了如何通过配置文件搭建spring开发环境,本篇文章将演示如何通过注解方式搭建spring开发环境。

开发步骤:

1)下载源码,准备jar包(这里用的是spring3.2.5版本)

   commons-logging-1.1.3.jar                      日志

   spring-beans-3.2.5.RELEASE.jar           bean节点

   spring-context-3.2.5.RELEASE.jar          spring上下文节点

   spring-core-3.2.5.RELEASE.jar               spring核心功能

   spring-expression-3.2.5.RELEASE.jar    spring表达式相关

2)配spring核心配置文件applicationContext.xml也可自定义文件名bean.xml.

<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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
     

3)使用注解

使用注解的步骤:

i)引入context名称空间 

xmlns:context="http://www.springframework.org/schema/context" 

ii)开启注解扫描

配置文件:

<context:component-scan base-package="e"></context:component-scan>

因为我的包名叫“e”,所以这里base-package="e",表示扫面e包及其子包。

iii)使用注解

将对象加入ioc容器,这里用的对象是aciton/service/dao模式

//@Component(value="userDao")//注解中,value属性可以省略
@Component  
public class UserDao {
	
	public void save() {
		System.out.println("DB:保存成功");
	}

}
//@Component(value="userService")
@Component
public class UserService {
    @Resource(name="userDao")  //根据名称查找,从容器中取出名为userDao的对象
	private UserDao userDao;
	
	public void saveUser() {
		userDao.save();
	}

}
//@Component(value="userAction")
@Component
public class UserAction {
    @Resource(name="userService")
	private UserService userService;

	public void execute() {
		userService.saveUser();
	}
}

运行测试代码:

public class App {
	//创建容器对象
	private ApplicationContext ac = new ClassPathXmlApplicationContext("e/applicationContext.xml");
	
	@Test
	public void testAction(){
		UserAction ua = (UserAction)ac.getBean("userAction");
		ua.execute();
	}
}

运行结果:

 

@Component(value="userDao")或者@Component("userDao")表示将UserDao加入容器,创建对象名为userDao。

@Component  默认将该类加入容器,名字为类名首字母小写,如:将UserDao加入容器,那么容器中UserDao的类名为userDao。

@Resource(name="userDao") 说明按名称查找,从容器中查找名为userDao的对象,赋值给添加注解的属性

@Resource  说明按照类型查找,从容器中查找类型为UserDao的对象,赋值给添加注解的属性,如果此时容器中UserDao类型的对象由多个,则报错。

 

由于每个类都使用@Component注解,看不出是哪一层的注解,故而可改用注解方式二:

//@Component(value="userDao")//注解中,value属性可以省略
//@Component  由于都是component开不出类的层级关系,因而改用Repository
@Repository   //持久层注解
public class UserDao {
	
	public void save() {
		System.out.println("DB:保存成功");
	}

}
//@Component(value="userService")
//@Component
@Service      //业务逻辑层注解
public class UserService {
//	@Resource(name="userDao")  //根据名称查找
	@Resource    //根据类型查找,容器中如果同一类型对象由超过两个,则会报错
	private UserDao userDao;
	
	public void saveUser() {
		userDao.save();
	}


}
//@Component(value="userAction")
//@Component
@Controller   //控制层注解
public class UserAction {
//	@Resource(name="userService")
	@Resource
	private UserService userService;

	public void execute() {
		userService.saveUser();
	}
}

测试代码同上,测试结果同上。

注解方式也可以和xml方式一起使用,如:

将UserDao类的注解去掉,增加set方法,在applicationContext.xml添加配置

<bean id="userDao" class="e.UserDao"></bean>

测试代码同上,测试结果同上。

以上,注解方式搭建spring开发环境就讲完了,如有错误,请指出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值