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方法的形参去掉
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!