项目目录如下:

Say.java为主函数通过ApplicationContext创建对象,利用方法ClassPathXmlApplicationContext访问配置文件Applicationcontext.xml利用ac对象调用getBean获取Bean.利用getter&setter,获取变量的值。

HelloWorld.java:

  1. public class HelloWorld {
  2. private String saySome;
  3. public String getSaySome() {
  4. return saySome;
  5. }
  6. public void setSaySome(String saySome) {
  7. this.saySome = saySome;
  8. }
  9. public void say(){
  10. System.out.println("练书法:"+saySome);
  11. }
  12. }

Say.java:

红色部分是重点!

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

HelloWorld hw = (HelloWorld) ac.getBean("say");

相当于java中的程序HelloWorld hw = new HelloWorld();为什么Spring中将java的创建对象设计的这么复杂,原因往后看!

  1. package com.haixu.service;
  2. import org.springframework.context.ApplicationContext;
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4. public class Say {
  5. public static void main(String[] args) {
  6. ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  7. HelloWorld hw = (HelloWorld) ac.getBean("say");
  8. hw.say();
  9. }
  10. }

applicationContext.xml:

红色部分,标签里bean的id指定了包com.haixu.service下的类名HelloWorld,这里的class必须要写,而且要写对,不然,bean就会找不到对应的变量名也不会输出结果,另外,id的名字任意的,但习惯上最好是类名的首字母小写,类似于这里的HelloWorld类,id可写成:helloWorld,这样,在主函数Say中就不会写错。另外非常重要的一点是:在Say.java中的ac.getBean("say");中的say正是applicationContext.xml中Bean里的id值,千万谨记,因为Say中寻找Bean,就是通过这个id找到的。

读到这也许会有点懵,再仔细读一遍上边的,然后,再看一下这个applicationContext.xml中bean标签中id就是代表了HelloWorld.java这个类,并且<property>标签中的name=“saySome“,指定的是HelloWorld.java中的变量,并通过了getter&setter的处理,这里的name必须与HelloWorld中的变量名相同,不能错误。

<value>元素中的值,是为变量saySome赋值用的。也就是说:这里的saySome=HelloWorld!

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:p="http://www.springframework.org/schema/p"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
  7. <bean id="say" class="com.haixu.service.HelloWorld">
  8. <property name="saySome">
  9. <value>HelloWorld!</value>
  10. </property>
  11. </bean>
  12. </beans>

以上就是一个简单地输出HelloWorld利用Spring来获取Bean的小案例,通过次例子,我们可以发现,我们并没有利用New方法来创建对象,因为利用new会增加程序的耦合性,因此,我们可以看出Spring正是提高了低耦合。

http://blog.csdn.net/u011225629/article/details/45420865

Spring学习笔记(3)——快速入门的更多相关文章

  1. C++ Primer学习笔记_1_快速入门

    C++快速入门 一 编写简单程序 // main是操作系统唯一显示调用的函数int main() {/**return返回的值是一个状态指示器 0:成功 非0:返回错误给OS*以echo $?命令可以 ...

  2. Kafka学习笔记2: 快速入门

    在开始Kafka环境搭建之前,首先要安装Linux系统,并在Linux系统上安装JDK1.8版本,关于linux虚拟机的安装和linux系统下jdk的安装可以参考我的博文: http://blog.c ...

  3. 学习笔记-CCS-MSP430F5529[快速入门篇二]

    由于2021的全国电赛延期了,从今天开始打算好好整理一下使用CCS编程的经验,本篇笔记会好好整理一下我备赛期间用CCS写的程序,包括外部中断,定时器部分的定时中断,定时器输入捕获,PWM波输出,UAR ...

  4. Vue 学习笔记之快速入门篇

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与 ...

  5. 学习笔记-CCS-MSP430F5529[快速入门篇一]

    由于最近竞赛需要使用TI公司的MSP430系列芯片,本人在最近两天匆忙的学习了一下MSP430F5529(下文统一称作5529)的使用.写下本文是为了将这两天学习内容做一个复习,并且将学习过程中遇到的 ...

  6. webpack 学习笔记 02 快速入门

    webpack 的目标 将依赖项分块,按需加载. 减少web app的初始加载时间. 使每一个静态集合都能够作为组件使用. 有能力集成第三方库,作为组件使用. 高度可配置化. 适用于大型项目. INS ...

  7. iOS学习笔记-地图MapKit入门

    代码地址如下:http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错漏 ...

  8. Spring学习笔记(一)

    Spring学习笔记(一) 这是一个沉淀的过程,大概第一次接触Spring是在去年的这个时候,当初在实训,初次接触Java web,直接学习SSM框架(当是Servlet都没有学),于是,养成了一个很 ...

  9. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  10. Hadoop学习笔记(1) ——菜鸟入门

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

随机推荐

  1. Tree命令安装和使用

    Tree命令简介 tree是一种递归目录列表命令,产生一个深度缩进列表文件,这是彩色的ALA dircolors如果ls_colors设置环境变量和输出是TTY.树已经被移植和报道以下操作系统下工作: ...

  2. 洛谷 P2783 有机化学之神偶尔会做作弊(Tarjan,LCA)

    题目背景 LS中学化学竞赛组教练是一个酷爱炉石的人. 有一天他一边搓炉石一边监考,而你作为一个信息竞赛的大神也来凑热闹. 然而你的化竞基友却向你求助了. “第1354题怎么做”<--手语 他问道 ...

  3. python的list拷贝

    有三种情况 第一种:赋值(不是拷贝) a=[1,2,3] b=a 这种不是拷贝,a和b是一个变量,内存是一个 第二种:浅拷贝 a=[1,2,3,[4,5,6]] b=a b的第一层是独立的,第二层会更 ...

  4. Pycharn破解补丁激活

    Pycharn破解补丁激活 到期时间: 1.  下载 https://pan.baidu.com/s/1mcQM8CLUnweY02ahKEr4PQ 并将 JetbrainsCrack-release ...

  5. Cobaltstrike系列教程(三)-beacon详解

    0x000--前文 Cobaltstrike系列教程(一)-简介与安装 Cobaltstrike系列教程(二)-Listner与Payload生成 heatlevel 0x001-Beacon详解 1 ...

  6. C# 与 C++,语法差别有多小-第二章 C++浏览

    (一)动态内存分配和指针 C++:new  和 delete                                  int *arr = new int[ 4 ]; C#:只有new,de ...

  7. 安装依赖的时候,报错npm WARN checkPermissions

    解决办法1 . 删除node_modules文件夹,重新安装依赖. 解决办法2 . 统一使用同一个npm安装依赖 . 原因:有的依赖包是用npm安装的,有的依赖包是用cnpm安装的.

  8. Microsoft Office Word

    快捷键 选区 选择块:[Shift]+click,光标放到块的一端,然后按住Shift,然后光标放到块的另一端. 更新域: F9 右键没有更新域选项时可以使用,如更新全部域先Ctrl + A然后F9 ...

  9. delphi 神经网络 学习

    https://github.com/uldercarrilho/ParallelNeuralNetwork

  10. postgresql中实现按周统计详解

    SELECT EXTRACT(DOW FROM CURRENT_DATE);   执行结果如下. 这个SQL语句的意思就是计算当前日期是一周中的第几天. EXTRACT(DOW FROM CURREN ...