zoukankan      html  css  js  c++  java
  • Spring框架 初步入门猜想

    现在我有

    第一个文件App.java

    第二个文件HelloWord.java

    第三个XML文件SpringBeans.xml

    运行App.java

    其中到底是什么原理呢?XML 写的东西到底是什么呢?

    开始探索

    XML里

    <bean id="uuu2" class="com.chen.firstSpring.HelloWorld">
            <property name="name2" value="nihao " />
        </bean>
    

    这个id号是个唯一标签,名字叫uuu2 ; 在App.java就用上了。例如

    public class App 
    {
        public static void main( String[] args )
        {
        
            ApplicationContext context=new ClassPathXmlApplicationContext("SpringBeans.xml");
            
         //下面这句话就是引用上面这个XML文件里的这个uuu2 的bean标签
          //现在开始注意观察bean标签写的东西
          //其实,下面的这句话 就是已经相当于HelloWorld h =  new HelloWorld();
            HelloWorld  h =  (HelloWorld)context.getBean("uuu2");
            h.printHello();
        }
    }
    
    bean标签里的class指定了这个哪个类(上面XML里用的是HelloWorld.java)
    bean标签里有个子标签是property 。 它的意思是要用 HelloWorld.java 里面  一个名叫setName2(String name2)的带参方法 。(这个,是后来我从编译报错得知的,不信等下做几个实验)。然后用property标签里面的value="nihao" ,将这个nihao当做参数传入 HelloWorld.java 的 setName2(String name2)方法里。然后使得HelloWorld的成员变量name2 等于"nihao";
    

    然后,App.java的最后一句话 :h.printHello(); 即是执行这个对象里的自己写的一个方法。打印出h的成员变量name2的值----nihao

    下面来几个实验验证我的猜想

    证明 标签property name="name2" value="nihao " 用的是 void setName2(String name2) 的方法
    下面我把它名字改了

    报错说invalid setter method (无效的setter方法)


    证明它的确进入的是setName2(String name2)的这个方法

    我把setName2方法的形参去掉

    结果:报错

  • 相关阅读:
    redis相关问题
    redis的持久化功能
    redis运维常用的server端命令
    Redis运维时需要注意的参数
    redis模拟消息订阅
    redis设置密码
    redis简单的事务
    Redis的配置文件详解
    Linux中安装redis的phpredis扩展
    css动画属性--小球移动
  • 原文地址:https://www.cnblogs.com/czy16/p/7667630.html
Copyright © 2011-2022 走看看