美文网首页
001--Spring关于JavaBean创建

001--Spring关于JavaBean创建

作者: 糖纸疯了 | 来源:发表于2018-04-22 22:36 被阅读5次

    话题1.在配置文件中的JavaBean如何被创建

    Spring配置JavaBean的方式
      <bean class="com.vincent.bean">
           <property name="age" value="14"></property>
           <property name="name" value="小明"></property>
           <property name="phone" value="153****8680"></property>
       </bean>
    
    // Spring关于Bean的注入
    public class TestBean {
        public static void main(String[] args) {
            // 创建Bean对象工厂对象
            DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
            
            // 创建对象构造类
            BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(User.class);
            
            // 创建对象定义
            AbstractBeanDefinition beanDefinition = beanBuilder.getBeanDefinition();
            TestBean.addProperty(beanDefinition);
            
            // 创建Bean对象工厂对象
            beanFactory.registerBeanDefinition("user", beanDefinition);     
            User user = beanFactory.getBean(User.class);
            System.out.println("---------------创建对象成功:"+user);
            
        }
        // 添加对象的属性方法
        public static void addProperty(AbstractBeanDefinition beanDefinition) {
            MutablePropertyValues propertyValues = new MutablePropertyValues();
            propertyValues.add("age", 14);
            propertyValues.add("name", "小明");
            propertyValues.add("phone", "153****8680");
            beanDefinition.setPropertyValues(propertyValues);
        }
    }
    
    // 省略相关的Set,Get,Constructor
    public class User {
        private String name;
        private int age;
        private String phone;
    }
    

    话题2.构造对象实例,创建JavaBean

        public static void main(String[] args) throws Exception{
            // 使用构造器方法构造对象
            Class<?> clazz = Class.forName("com.vincent.bean.User");// 根据类名找到这个类
            Object object = clazz.newInstance();// 用类创建一个实例对象
            // 添加属性方法
            TestBean.addMethod(clazz, object);
            System.out.println("----------user:"+object);
        }
        // 为创建的实例对象添加方法
        public static void addMethod(Class<?> clazz, Object object) throws Exception{
            //java.lang.reflect.Method看到类名应该就明白了
            Method method1 = clazz.getMethod("setName", String.class);
            Method method2 = clazz.getMethod("setAge", int.class);//不能使用Integer.class
            method1.invoke(object, "xiaoming");
            method2.invoke(object, 10);
        }
    

    话题3.构造器方法,创建JavaBean

        public static void main(String[] args) throws Exception {
            // 使用构造器方法构造对象
            Class<?> clazz = Class.forName("com.vincent.bean.User");// 根据类名找到这个类
            // 前提是必须有相对应的构造方法
            Constructor<?> constructor = clazz.getConstructor(String.class, String.class, int.class);
            Object object = constructor.newInstance("xiaoming","153****8680",10);
            System.out.println("----------user:"+object);
        }
    

    相关文章

      网友评论

          本文标题:001--Spring关于JavaBean创建

          本文链接:https://www.haomeiwen.com/subject/ifuhlftx.html