java

简介:

1.package spring.chapter2.setDemo;  
2.import org.springframework.context.ApplicationContext;  
3.import org.springframework.context.support.ClassPathXmlApplicationContext;  
4.  
5.  
6.public class SpringTest {  
7.public static void main(String args[]){  
8.    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");  
9.    Role role =(Role)ac.getBean("role");  
10.    System.out.println("人物名称:"+role.getName()+"   血量: "+role.getHealth());  
11.}  
12.package spring.chapter2.setDemo;  
13.import java.lang.reflect.*;  
14.import org.springframework.beans.BeansException;  
15.import org.springframework.beans.factory.config.BeanPostProcessor;  
16.  
17.public class HealthModifier implements BeanPostProcessor {  
18./*//游戏外挂么!@ 
19. *  
20. *  
21. *  
22. *  
23. *  
24. *  
25.*/  public Object postProcessAfterInitialization(Object bean,String name)throws BeansException  
26.    {  
27.        //获取bean中所有的属性  
28.        Field[] fields =bean.getClass().getDeclaredFields();  
29.        for(int i=0;i<fields.length;i++)  
30.            //由于role中只有一个int字段且就是health,这里只需要进行一个简单的类型判断  
31.            if(fields[i].getType().equals(int.class)){  
32.                //这句非常重要,因为Role中所有字段是private的,这里设置可以访问  
33.                fields[i].setAccessible(true);  
34.                try{  
35.                    //获得系统设定的health值  
36.                    int health =(Integer)fields[i].get(bean);  
37.                    //修改人物生命值,增加100  
38.                    fields[i].set(bean,health+300);  
39.                }catch(IllegalAccessException e)  
40.                {  
41.                    e.printStackTrace();  
42.                }  
43.            }  
44.          
45.        System.out.println("****after******");  
46.  
47.        return bean;  
48.    }  
49.  
50.    @Override  
51.    public Object postProcessBeforeInitialization(Object bean, String beanName)  
52.            throws BeansException {  
53.        // TODO Auto-generated method stub  
54.        System.out.println("++++before++");  
55.        return bean;  
56.          
57.    }  
58.      
59.}  
60.<?xml version="1.0" encoding="UTF-8"?>  
61.<beans xmlns="http://www.springframework.org/schema/beans"  
62.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
63.    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
64.  
65.    <bean id="medicine" class="spring.chapter2.setDemo.Medicine">  
66.        <property name="name" value="小药丸" />  
67.        <property name="blood" value="10" />  
68.    </bean>  
69.    <bean id="role" class="spring.chapter2.setDemo.Role">  
70.        <property name="name" value="Mary" />  
71.        <property name="health" value="100" />  
72.        <property name="goods">  
73.            <list>  
74.                <ref bean="medicine" />  
75.            </list>  
76.        </property>  
77.    </bean>  
78.  
79.    <bean id="healthModifier" class="spring.chapter2.setDemo.HealthModifier"/>  
80.</beans>  
81.<!-- 在Spring.xml里有几个id  则BeanPostProcessor调用几次 -->  }  

相关文章
|
开发框架 Oracle 算法
初识Java
大家好!我是保护小周ღ,本期为大家带来的是初始 Java,主要给大家带来,Java的简介:Java是什么、Java的热度、Java 的就业等,怎样使用 IEDA 集成开发环境新建项目,并打印Hello World!   Java 的main 方法,以及java 文件是怎样运行的。
164 0
|
Java 测试技术
1070 结绳(JAVA)
给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。
1070 结绳(JAVA)
|
Java 程序员 C语言
Java是什么
ava到底是啥?它能干什么? 自己也看过不少的课程和书,大部分都是从Java的发展史开始讲,总之就是那些什么Java历史悠久,Java很优秀,Java越来越牛,用的人越来越多,什么编程语言排行榜常年第一,大致都是这些,然后再扯些其他的,接着就上起了Hello World!就这样,你Java生涯的第一个代码开始了,意思是“你好,世界!” 我还是想不通,Java是啥,能干嘛,能不能先告诉我? 可能你在刚开始学习Java的时候也有这样的疑惑,那么你会怎么做呢?你不知道啊,怎么办?问别人?不,你应该会想到百度,不是说 百度一下,你就知道吗? 好嘞,我们上百度看看去: 640?wx_fmt=
188 0
|
缓存 分布式计算 自然语言处理
重新来理解一下Java是什么(下)
阿粉?阿粉?阿粉?阿粉在哪里,项目经理今天发现阿粉没来,一时间很生气,心里盘算回来一定要让阿粉知道自己不是好惹的?可是阿粉去了哪里呢?阿粉受不鸟这个公司了,太 TM XXX了,阿粉出来面试了!!!阿粉心想一定要找到一个好工作!!!
重新来理解一下Java是什么(下)
java
java程序如何正确打日志
265 0
|
算法 Java Linux
Java ConcurrentSkipListMap 实现
本文目前只是简单地介绍了 Java 并发容器中 ConcurrentSkipListMap 的实现方式,后续会考虑拓展本文,从源码的角度进行详细的分析。
Java ConcurrentSkipListMap 实现
|
Java Linux 索引
Java CoryOnWriteArrayList 实现
本文着重介绍 Java 并发容器中 CoryOnWriteArrayList 的实现方式。
|
Java
java if..else
java if..else
133 0
java if..else
|
存储 Java C++
C++和java的比较
C++和java的比较
134 0