博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java开发系列】—— spring简单入门示例
阅读量:6494 次
发布时间:2019-06-24

本文共 2058 字,大约阅读时间需要 6 分钟。

  1 

  2 

前言

  作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已。这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转\依赖注入,和AOP面向切面编程。

  1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字。

  控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。

  依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。

  举个简单的例子,程序猿加班了一个月,很累,想要放松下,于是去找人吃“麻辣烫”。

  不使用spring的传统做法是,我们自己通过陌陌微信等神器,主动寻找目标,花费大量人力物力,达成协议后,申请“场所”办正事。

  而使用spring的做法就很方便了,我们直接去某个场所,那个地方直接就有目标候着!

  这是多么神奇的功能啊!

 

(此图涉及暴力,18岁以下自行负责)  

  2 AOP面向切面编程

  我们把一个方法看做是一个切面,在这个切面的前后或者周围,都可以设置其他的处理方法,进行一些特殊的处理。

  比如一个“吃蛋糕”的方法,在这个方法前需要“拆包装”,方法后需要“打扫卫生”,都可以通过这种编程方式来实现。

  那么下面看下它的编码过程!

  1 首先我们需要一个bean,用某种方法(设置注入需要有setter函数,构造注入需要有构造函数,相应的bean.xml配置文件也会不同)设定注入方式。

  2 bean.xml,设置bean与类的关系,并关联默认的注入值。

  3 获取bean.xml文件,创建实例对象,直接调用方法。

  可以看到,我们开发的程序只有第三步的“创建实例对象,直接调用方法”,并没有为他进行初始化等工作,就可以直接调用它的方法,获取它的值。其实spring在程序初始化的时候,就会为我们把bean对应的对象注入进来,帮助我们完成初始化,因此我们只要通过一个引用对象,就可以直接调用了。

  最后我们写一个简单的依赖注入的小样例!

  1 需要的jar包和文件结构

  jar包下载地址:http://pan.baidu.com/s/1sjDbzrR

  

  2 bean.xml配置文件,放在src目录下

 

1 
2
6
7
8
9
10

  3 Person类,这里使用的是set设置注入方式

package com.test.bean;public class Person {        private String name;    private int age;        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public void info(){        System.out.println("一起来吃麻辣烫!");        System.out.println("name:"+getName()+" age:"+getAge());    }}

  4 test类

package testSpring;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.test.bean.Person;public class test {    public static void main(String[] args){        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容        Person p = ctx.getBean("person",Person.class);//创建bean的引用对象        p.info();    }}

  5 执行结果

 

本文转自博客园xingoo的博客,原文链接:,如需转载请自行联系原博主。
你可能感兴趣的文章
yield学习续:yield return迭代块在Unity3D中的应用——协程
查看>>
手机触屏滑动图片切换插件swiper.js
查看>>
LeetCode - Maximum Depth of Binary Tree
查看>>
把数据库中有关枚举项值的数字字符串转换成文字字符串
查看>>
基于html5海贼王单页视差滚动特效
查看>>
JavaScript变换表格边框颜色
查看>>
BIZTALK项目中WEB引用WEBSERVICES服务时候报错
查看>>
我常用的那些linux命令
查看>>
QT 5.4.1 for Android Ubuntu QtWebView Demo
查看>>
友盟自动更新
查看>>
OSD的主要实现方法和类型(转)
查看>>
JComboBox
查看>>
【转】Android下编译jni库的二种方法(含示例) -- 不错
查看>>
DoubleViewPager
查看>>
Android上成功实现了蓝牙的一些Profile
查看>>
基于jQuery图片自适应排列显示代码
查看>>
NEURAL NETWORKS, PART 1: BACKGROUND
查看>>
jquery对同级的td做radio限制
查看>>
Delphi XE5 常用功具与下载
查看>>
存储过程由结构表生成表
查看>>