写在前面:spring的两大特点:IOC与aop。IOC(Inverse of Control):控制反转,也可以称为依赖倒置。降低耦合。AOP:即面向切面编程。 从Spring的角度看,AOP最大的用途就在于提供了事务管理的能力。事务管理就是一个关注点,你的正事就是去访问数据库,而你不想管事务(太烦),所以,Spring在你访问数据库之前,自动帮你开启事务,当你访问数据库结束之后,自动帮你提交/回滚事务!

1、spring创建对象的模式是单例模式。简言之调用ac.getBean("mybean");,创建的是同一个对象。

2、创建自己的第一个spring案例:

  1、写一个接口:HelloBean

 public interface HelloBean {
public abstract void sayHelloo();
}

  2、随意写两个类,继承HelloBean接口,ZNhello与ENhello

public class ENhello implements HelloBean{
@Override
public void sayHelloo() {
// TODO Auto-generated method stub
System.out.println("测试学习spring,接口方式。");
}
public class ZNhello implements HelloBean{
@Override
public void sayHelloo() {
// TODO Auto-generated method stub
System.out.println("测试学习spring,接口方式。 interface");
}
}

  3、写一个类,调用接口方法:usebean

public class UseBean {
private HelloBean w;
public void show(){
System.out.println("显示hello的内容:");
w.sayHelloo();
}
//set后面的单词英语spring配置文件中的property name="hello" 中的name值一致。
public void sethello(HelloBean hello){
this.w = hello;
}
}

  4、配置spring项目的配置文件:applicationContext.xml

<!-- 创建bean,有指定的id , 对应的class -->
<bean id="usetest" class="demo2.UseBean">
<property name="hello" ref="rr"></property>
</bean>
<bean id="enhellobean" class="demo2.ENhello"> </bean>
<bean id="rr" class="demo2.ZNhello"> </bean>

  5、测试: Test.java

 import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource; public class Test { private static final String lujingname = "demo2/applicationContext.xml"; public static void main(String[] args) { // 第一种方式,applicationContext方法
//ApplicationContext ac = new ClassPathXmlApplicationContext("demo2/applicationContext.xml");
//UseBean userbean = (UseBean) ac.getBean("usetest");
//userbean.show(); // 第二种方式,BeanFactory是applicationContext的父类。
//Resource lujing_nei = new ClassPathResource(lujingname);
//BeanFactory ac = new XmlBeanFactory(lujing_nei);
//UseBean userbean = (UseBean) ac.getBean("usetest");
//userbean.show(); //第三种,spring文件直接放在硬盘中的其他位置。
ApplicationContext ac = new FileSystemXmlApplicationContext("I:/applicationContext.xml");
//Resource yy = new FileSystemResource("I:/applicationContext.xml");
//BeanFactory ac = new XmlBeanFactory(yy);
UseBean userbean = (UseBean) ac.getBean("usetest");
userbean.show(); } }

  6、执行测试,记得是执行运行JAVA测试,而不是执行运行Javaweb的测试……

Spring学习札记(一)的更多相关文章

  1. spring 学习之 bean 的注入方式 property和constructor-arg的使用方式

    spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...

  2. Spring学习之AOP总结帖

    AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...

  3. Spring学习之第一个AOP程序

    IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...

  4. MyEclipse Spring 学习总结三 SpringMVC

    MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...

  5. Spring学习 Ioc篇(一 )

    一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...

  6. Spring学习(三)——Spring中的依赖注入的方式

    [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...

  7. Spring学习(二)——Spring中的AOP的初步理解[转]

      [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...

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

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

  9. BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计

    感觉自我表述能力有欠缺,技术也不够硬,所以之后的Windows8应用开发学习札记的文章就偏向于一些我认为较难的地方和重点了多有抱歉. 上节课是入门,这节课就已经开始进行视图设计了. Windows应用 ...

随机推荐

  1. Springboot使用alibaba的fastJson,@JSONField不起作用的问题

    在Springboot中默认的JSON解析框架是jackson 今天引入alibaba的fastjson,使用@JSONField(serialize=false),让@RestController转 ...

  2. 华为的云计算基于openstack #stackalytics#

    华为的云计算基于openstack,具体实力可以参考openstack 社区提供的stackalytics http://stackalytics.com/

  3. WARING

    每一道题都先手玩样例! 认真读一下每一档数据,仔细计算每一档可以拿的分数! 读完题目后,把所有能想到的思路写在纸上. 最优化题目考虑dp和贪心两种方法 字符串题目前缀考虑trie树,后缀考虑fail树 ...

  4. Element-ui上传文件(删除、添加、预览)

    先看下效果是不是你所需要的.... 上传文件进度条后续会加上的.... 功能需求:默认为上传状态 1.未上传:点击可上传文件 2.已上传:点击可上传文件 (1).鼠标移入[删除] (2).鼠标点击[预 ...

  5. 局域网内Ping不通

    局域网ping不通, 原来不可忽视这步......... 通常,经常在局域网里面,为了检测网络是否顺畅,都会ping一下IP,如果网络正常,就可以上网或者远程处理其他故障.但是会出现ping别人的主机 ...

  6. ERP新人防坑指南

    本文作为初入ERP行业的新人的防坑指南,讲解了一些常见犯的错,这样也少走一些弯路,如果你是老鸟,请绕过 :-) 本文关联的代码使用kotlin编写,请自行转换为c#.java等你熟悉的语言,表述的坑在 ...

  7. 设置position(absolute,fixed)导致flex布局不生效

    个人解决办法:将要设置display:flex的dom外面在套一个div,并且设置宽度,就可以了.

  8. 刷题upupup【Java中HashMap、HashSet用法总结】

    HashMap: 常用操作 1. containsKey() 判断HashMap是否包含key 2. containsValue() 判断HashMap是否包含“值为value”的元素 3. get( ...

  9. 苹果手机的SB系列(2)为什么不能重命名?

    为什么没有重命名? 在手机端不能重命名,在WINOWS端文件是只读的,连他TM的只读属性都无法改,不能重命名,你让我怎么备份? 我怎么知道哪些照片上次备份过了?又重头来过?还是要用苹果的MAC?这种态 ...

  10. Linux内存管理(二)

    Linux内存管理之二:Linux在X86上的虚拟内存管理 本文档来自网络,并稍有改动. 前言 Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等.对于不能够通用的 ...