回顾

  1 JDK安装

  2 Struts2简单入门示例

前言

  作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已。这次讲到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 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://www.springframework.org/schema/beans"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 6     <bean id="person" class="com.test.bean.Person">
 7         <property name="name" value="xingoo"/>
 8         <property name="age" value="12"/>
 9     </bean>
10 </beans>

  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 执行结果

from: http://www.cnblogs.com/xing901022/p/3963962.html

【java开发系列】—— spring简单入门示例相关推荐

  1. Eclipse中使用Hadoop集群模式开发配置及简单程序示例(Windows下)

    Hadoop入门配置系列博客目录一览 1. Eclipse中使用Hadoop伪分布模式开发配置及简单程序示例(Linux下) 2. 使用Hadoop命令行执行jar包详解(生成jar.将文件上传到df ...

  2. BizTalk 2006 简单入门示例程序(附源项目文件下载)

    BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...

  3. (超多图)基于Android studio开发的一个简单入门小应用(超级详细!!)(建议收藏)

    基于Android studio开发的一个简单入门小应用 一.前言 二.前期准备 三.开发一个小应用 五.运行应用 一.前言 在暑假期间,我学习JAVA基础,为了能早日实现自己用代码写出一个app的& ...

  4. 用Java 开发 WebService Axis简单实例

    用 Java 开发 WebService Axis 简单实例 在开发之前, 先了解一下AXIS,axis目前出现的2版本以其灵活性,快速开发工具的集成高于xfire而使用者居其上.用Eclipse开发 ...

  5. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  6. JAVA开发(Spring框架详解)

    javaweb项目几乎已经离不开spring框架了,spring 是一个典型的分层架构框架,它包含一系列的功能并被分为多个功能模块,springboot对spring框架又做了一层封装,以至于很多人对 ...

  7. Java Servlet系列之Servlet入门

    什么是Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服 ...

  8. Apache Kafka教程A系列:简单生产者示例

    原文地址:https://www.tutorialspoint.com/apache_kafka/apache_kafka_simple_producer_example.htm 让我们创建一个使用J ...

  9. Java开发工具IntelliJ IDEA入门教程:代码片段和代码折叠

    本文将介绍在IntelliJ IDEA 使用过程中的 代码片段和代码折叠相关内容. IntelliJ IDEA官方正版下载 代码片段 与全局操作系统快捷方式冲突 预定义的键盘映射并不涵盖所有可能的平台 ...

最新文章

  1. Python PIPEs
  2. freemarker ftl模板_效率提升百分之四十,AS模板也太好用了吧
  3. 详细描述一下 Elasticsearch 索引文档的过程。
  4. 7-2 天梯地图 (30分)_「月夜枫YYF」不会吧不会吧,枫哥失守8000分阵地!
  5. 使用PADDING-TOP:(PERCENTAGE)实现响应式背景图片
  6. hutool中的threadutil_Hutool
  7. ios 苹果手机适配代码
  8. 关于spring boot的web.xml
  9. jmail组件 java,分享Jmail发送邮件工具类
  10. overlay/static/register/atuo/extern/volatile/const 修饰符的用法
  11. 海贝音频384khz_海贝音乐app下载-海贝音乐手机版下载v3.3.0 - 星光下载
  12. 卡内基梅隆计算机金融,卡耐基梅隆大学计算金融项目申请要求是什么?
  13. 创维E900V22C、E900V22D系列-UWE5621DS芯片语音免拆卡刷固件(当贝桌面)《虎年新春开机动画》
  14. 国内对公转账银行手续费的几种情形
  15. 截取Chrome下载的mp3
  16. 计算机 蚂蚁搬家 教案,小班蚂蚁搬家的教案
  17. AC宣布退出DeFi
  18. linu安装python走到300就不动了_linux centos 安装python3.7报错会在load avg: 0.63 [307/416] test_socket卡住 解决办法...
  19. 雄关漫道真如铁, 而今迈步从头越
  20. 大雁塔,青龙寺,樱花舞,落尘香

热门文章

  1. Lesson 4.6 逻辑回归的手动实现
  2. 拼多多提交赴美上市招股书 陆奇担任独立董事兼薪酬委员会主席
  3. 神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras 300 用我
  4. AlphaGo之父哈萨比斯: 先解决智能 再用智能解决一切
  5. GMIS 2017大会Wesly Mukai演讲:智能运输的未来
  6. 不是你无法入门自然语言处理(NLP),而是你没找到正确的打开
  7. 食品安全溯源区块链解决方案探索-转载
  8. 算法与数据结构(快速排序)
  9. 《数据结构》知识点Day_01
  10. php print_r this,PHP 打印函数之 print print_r