Spring入门Blog[五、Spring@Component和Resouces实现注解配置]

原创 2015年12月23日 11:17:10

转自:http://blog.csdn.net/zhang6622056/article/details/7697876


@Resource和@Component实现零XML配置


1、@Resource的注解:
@Resource是J2EE的注解。意思是说在容器里面找相应的资源。也可以通过name属性指定它name的资源。可以注解到field或者setter上面
public class UserAction {
	private UserService userService;
	
	@Resource(name="userService")
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	public void addUser(){
		userService.HelloWorld();
	}
}


2、@Component
@Component和<context:component-scan base-package="com.spring"></context:component-scan>配合实现无XML配置,只通过注解配置及可将类放入资源容器中。

案例解析:
1、	xml文件:配置容器资源扫描的包
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
     
    <context:annotation-config/>
    <!-- 配置容器资源扫描的包 -->
   <context:component-scan base-package="com.spring"></context:component-scan>
</beans>

2、	Java文件:
标注资源的注解@Component。括号里面指定的是存入容器的name属性为userService
那么将来我们拿的时候则getBean(“userService”)即可。如果我们不指定userService它默认存入容器bean的key为userServiceImpl这样就可以得到一个装有UserServiceImpl对象的容器
package com.spring.service;
import org.springframework.stereotype.Component;
import com.spring.dao.UserDao;

@Component("userService")
public class UserServiceImpl implements UserService{
	private UserDao userDao;
	public void init(){
		System.out.println("init");
	}
	public void destory(){
		System.out.println("destory");
	}
	public UserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	public void HelloWorld(){
		System.out.println("helloworld");
	}
}

通过@Resource将资源注入进来
因为上文已经配置了容器里面的资源。所以我这里将资源通过@Resource注解将资源注入到相关的属性。请看代码:
@Component("userAction")
public class UserAction {
	private UserService userService;
	
	//它会将beans的xml文件配置加入进去
	//也可以使用name属性指定byName的指定
	@Resource(name="userService")
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	public void addUser(){
		userService.HelloWorld();
	}
}


测试实现:
通过上文配置的userAction案例来得到这个对象然后调用它里面的方法,因为上文通过了@ Component注解将UserAction的对象配置到了容器里面。所以获得容器之后就可以用这种方法getbean即可

	@Test
	public void test01(){
		BeanFactory applicationContext = new ClassPathXmlApplicationContext("beans.xml");
		UserAction user = (UserAction) applicationContext.getBean("userAction");
		user.addUser();
	}


@Scope和@PostConstruct、@PreDestroy

很简单就相当于前面讲到的作用于和initmethod和destorymethod请看下面代码。不再多说:
@Scope("Singleton")
@Component("userService")
public class UserServiceImpl implements UserService{
	private UserDao userDao;
	@PostConstruct
	public void init(){
		System.out.println("init");
	}
	@PreDestroy
	public void destory(){
		System.out.println("destory");
	}
	public UserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	public void HelloWorld(){
		System.out.println("helloworld");
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

spring注解配置原理浅析

除了使用xml文件配置以外,spring还支持使用注解实现JavaBean的配置,其具体实现方式网上已经介绍的很详细,这里就不再赘述了。本文将主要通过源代码解析spring注解配置JavaBean的全...
  • tanqian351
  • tanqian351
  • 2016年08月17日 14:54
  • 2355

spring源码剖析(五)利用AOP实现自定义Spring注解

自定义Spring注解,利用AOP实现自定义Spring注解
  • fighterandknight
  • fighterandknight
  • 2016年04月17日 01:29
  • 3229

spring入门及常用注解的使用

目前java主流的开源框架无论是ssh还是ssi,除了spring,其他的框架都有可替换的框架struts2和springmvc,hibernate和ibatis(mybatis),这里我们不讨论其他...
  • yy6090
  • yy6090
  • 2016年09月18日 11:17
  • 893

spring AOP 之 注解 配置实现(附 Java 代码实例)

导入类扫描的注解解析器 命名空间:xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=...
  • qq_27093465
  • qq_27093465
  • 2016年11月28日 18:16
  • 1808

基于Spring task注解方式配置任务

在上讲中,我们使用了XML的方式来配置Quartz定时任务,虽然比用API的方式简便多了,但是Spring还支持基本注解的方式来配置。这样做不仅更加简单,而且代码量也更加少了。...
  • Evankaka
  • Evankaka
  • 2015年04月30日 23:10
  • 9198

【Spring】在Spring框架下使用注解配置JDBC事务

算是对Spring的一个阶段性总结吧,注解、依赖注入、JDBC、事务等重点基本都涉及到了,值得记录一下。 首先是最重要的xml配置文件。虽然使用了注解方式,不过还是需要在XML中设置一些东西...
  • Spixii
  • Spixii
  • 2016年12月22日 19:25
  • 1911

J2EE开发 Spring MVC配置详解(非注解方式和注解方式)

首先,确保自己的开发环境正确 1.JDK 1.7+Spring3.x+Tomcat 2.JDK 1.8+Spring4.x+Tomcat 不能用JDK 1.8去编译Spring 3.x的版本开发,...
  • lizhaowei213
  • lizhaowei213
  • 2016年02月04日 15:37
  • 7568

使用Spring的注解方式实现AOP入门

首先在Eclipse中新建一个普通的Java Project,名称为springAOP。为了使用Spring的注解方式进行面向切面编程,需要在springAOP项目中加入与AOP相关的jar包,spr...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2016年10月20日 00:28
  • 4150

Spring中IOC配置xml实现和IOC注解实现

1.什么是spring spring 是分层的JavaSE/EE轻量级应用开源框架,已控制反转IOC和面向切面编程AOP为核心,提供了展现层SpringMVC, 和持久层Srping JDBC以及事务...
  • u014292162
  • u014292162
  • 2016年08月22日 16:10
  • 3295

利用注解实现spring基本配置详解

Spring注解 1.准备工作 (1)导入common-annotations.jar (2)导入schema文件 文件名为spring-context-2.5.xsd (3)在xml...
  • vstar283551454
  • vstar283551454
  • 2013年03月17日 15:04
  • 61169
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring入门Blog[五、Spring@Component和Resouces实现注解配置]
举报原因:
原因补充:

(最多只允许输入30个字)