Spring系列【6】@Resource注解实现Bean的注入

Book.java

 1 package cn.com.xf;
 2
 3 public class Book {
 4     private String name;
 5     private double price;
 6     public String getName() {
 7         return name;
 8     }
 9     public void setName(String name) {
10         this.name = name;
11     }
12     @Override
13     public String toString() {
14         return "Book [name=" + name + ", price=" + price + "]";
15     }
16     public double getPrice() {
17         return price;
18     }
19     public void setPrice(double price) {
20         this.price = price;
21     }
22 }

Person.java

注意:@Resource(name="book")位置
 1 package cn.com.xf;
 2
 3 import javax.annotation.Resource;
 4
 5 public class Person {
 6     private String address;
 7     @Resource(name="book")
 8     private Book book;
 9     public String getAddress() {
10         return address;
11     }
12     public void setAddress(String address) {
13         this.address = address;
14     }
15     @Override
16     public String toString() {
17         return "Person [address=" + address + ", book=" + book + "]";
18     }
19     public Book getBook() {
20         return book;
21     }
22     public void setBook(Book book) {
23         this.book = book;
24     }
25 }

Spring配置文件:声明 org.springframework.context.annotation.CommonAnnotationBeanPostProcessor 类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="book" class="cn.com.xf.Book">
        <property name="name" value="java系列丛书"></property>
        <property name="price" value="34.56"></property>
    </bean>
    <bean id="person" class="cn.com.xf.Person">
        <property name="address" value="河南省淅县"></property>
    </bean>
    <bean
        class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor">
    </bean>
</beans>

测试类:正确返回结果.

 1 package cn.com.xf;
 2
 3 import org.springframework.context.ConfigurableApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5
 6 public class MainTest {
 7
 8     public static void main(String[] args) {
 9         ConfigurableApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
10         Person p=(Person) ctx.getBean("person");
11         System.out.println(p);
12         ctx.close();
13     }
14 }
时间: 2024-12-29 23:23:16

Spring系列【6】@Resource注解实现Bean的注入的相关文章

开涛spring3(12.2) - 零配置 之 12.2 注解实现Bean依赖注入

12.2  注解实现Bean依赖注入 12.2.1  概述 注解实现Bean配置主要用来进行如依赖注入.生命周期回调方法定义等,不能消除XML文件中的Bean元数据定义,且基于XML配置中的依赖注入的数据将覆盖基于注解配置中的依赖注入的数据. Spring3的基于注解实现Bean依赖注入支持如下三种注解: Spring自带依赖注入注解: Spring自带的一套依赖注入注解: JSR-250注解:Java平台的公共注解,是Java EE 5规范之一,在JDK6中默认包含这些注解,从Spring2.

spring4.0.6最新稳定版新特性学习,注解自动扫描bean,自动注入bean(二)

Spring4.0的新特性我们在上一章已经介绍过了.包括它对jdk8的支持,Groovy Bean Definition DSL的支持,核心容器功能的改进,Web开发改进,测试框架改进等等.这张我们主要介绍spring4.0的自动扫描功能,以及对bean的过滤等特性进行学习. 好吧,废话少说,我们来看看代码吧. package com.herman.ss.test; import org.springframework.context.ApplicationContext; import org

Spring(七)用@Resource注解完成属性装配

使用到注解需导入jar包:common-annotations.jar 手工装配依赖对象有两种编程方式: 一.在xml配置文件中通过bean节点进行配置,如: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001

(转)java之Spring(IOC)注解装配Bean详解

在这里我们要详细说明一下利用Annotation-注解来装配Bean. 因为如果你学会了注解,你就再也不愿意去手动配置xml文件了,下面就看看Annotation的魅力所在吧. 先来看看之前的bean注解装配例子: package com.eco.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import

Spring In [email&#160;protected]注解给Bean命名

package soundsystem; import org.springframework.stereotype.Component; //@Component注解会告诉Spring创建这个类的实例bean(注意,启动Component注解功能需要在xml里面配置) @Component("newName") public class SgtPeppers implements CompactDisc { private String title="Pepper's Lo

Spring系列【4】应用@Autowired注解实现Bean的注入

User.java package cn.com.xf; public class User { private String name; private int age; private String remark; //省略setter/getter方法 @Override public String toString() { return "User [name=" + name + ", age=" + age + ", remark="

spring系列3 基于注解的IOC

spring中ioc的常用注解 <bean id="accountService" class="com.mantishell.service.impl.AccountServiceImpl" scope="" init-method="" destroy-method=""> <property name="" value="" | ref=&qu

Spring系列【10】按照Bean的名称自动装配

User.java 1 package com.lh.entity; 2 3 public class User { 4 private String name = "test"; //用户姓名 5 private Integer age = 27; //年龄 6 private String sex = "男"; //性别 7 public String getName() { 8 return name; 9 } 10 @Override 11 public S

Spring系列【11】配置Bean的初始化行为

对某个Bean添加lazy-init属性:lazy-init 设置只对scop属性为singleton的bean起作用 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins