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调用几次 -->  }  

相关文章
|
16天前
|
Oracle Java 关系型数据库
|
1月前
|
Java
java
e是java运行时的环境,包含jvm和运行时所需要的类库 jdk是java开的程序包,包含jre和开发人员使用的工具 jvm就是我们常说的java虚拟机,他是整个java实现跨平台的最核心 的部分,所有的java程序会首先被编译为.class的类文件,这种类文 件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统 相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释 给本地系统执行。 只有jvm还不能成class的执行,因为再解释class的时候jvm需要调用 解释所需要的类库lib,而jre包含lib类库。jvm屏蔽了与具体操作系 统平台相关的信息,使得java程序
11 1
|
8月前
|
存储 Java 数据安全/隐私保护
Java 知识总结
Java 知识总结
38 0
Java 知识总结
|
8月前
|
Java
|
7月前
|
Java
java if
if (condition) { // 如果条件为真,执行这里的代码 } else { // 如果条件为假,执行这里的代码 }
34 0
|
7月前
|
Java
Java太卷了
Java太卷了
|
10月前
|
负载均衡 Java 应用服务中间件
[Java]ITOO初步了解
[Java]ITOO初步了解
68 0
|
存储 Java
|
Java
Java——I/O I
Java——I/O I
85 0
|
开发框架 安全 网络协议
java me
Java 是一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 Java 语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 01 Java EE 是指 Java Enterprise Edition,Java 企业版,多用于企业级开发,包括 web 开发等等。也叫 J2EE。 Java SE 通常是指 Java Standard Edition,Java 标准版,就是一般 Java 程序的开发就可以(如桌面程序),可以看作
170 0