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");
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xya_zone/article/details/50385569

编程方向

 一、前言  很多人认为,数据库编程是一个颇具诱惑力的工作,这诱惑力来自于数据库应用的巨大市场需求。计算机应用有科学计算、数据处理与过程控制三大主要领域,而数据处理是其中所占比重最大的一个领域,包括现...
  • xingjiaren
  • xingjiaren
  • 2001-04-10 11:37:00
  • 924

Spring入门Blog[五、Spring容器组建注解@Component和Resouces实现完全注解配置]

@Resource和@Component实现零XML配置 1、@Resource的注解: @Resource是J2EE的注解。意思是说在容器里面找相应的资源。也可以通过name属性指定它name的...
  • zhang6622056
  • zhang6622056
  • 2012-06-27 23:32:27
  • 8198

spring注解配置原理浅析

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

使用Spring的注解方式实现AOP的细节

前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Spring的注解方式实现AOP的一些细节。本文是建立在使用Spring的注解方式实现AOP入门的案例的基础之上的。 本文...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2016-10-21 09:01:03
  • 5736

spring 注解配置与java配置

注解配置:声明bean的注解@Service 在业务逻辑层service层使用@Component 组件,没有明确的角色@Repository 在数据访问层dao层使用@Controlle 在控制层使...
  • wanderlustLee
  • wanderlustLee
  • 2018-02-23 21:40:00
  • 78

Spring IoC简单示例-注解配置-Maven构建

  • 2013年03月21日 11:17
  • 14KB
  • 下载

基于注解配置和使用spring AOP(spring mvc框架)

  • 2017年07月19日 16:31
  • 32.63MB
  • 下载

Spring自动注入,利用注解实现spring基本配置详解,Spring注解快速入门

Spring注解 1.准备工作 (1)导入common-annotations.jar (2)导入schema文件 文件名为spring-context-3.0.3.RELEASE.jar (3...
  • lyliyongblue
  • lyliyongblue
  • 2015-02-03 11:26:03
  • 3974

spring+hibernate注解配置实例

简单的spring3.2.9和hibernate3的集成配置,有demo供下载。shTest下载 第一步 jdbc.properties配置 driverClassName=com.mysq...
  • w171203757
  • w171203757
  • 2015-07-31 22:15:46
  • 1997

使用全注解配置Spring MVC

全注解配置Spring MVC和其原理
  • ykzhen2015
  • ykzhen2015
  • 2017-04-25 00:10:41
  • 2733
收藏助手
不良信息举报
您举报文章:Spring入门Blog[五、Spring@Component和Resouces实现注解配置]
举报原因:
原因补充:

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