【java开发系列】—— spring简单入门示例
回顾
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简单入门示例相关推荐
- Eclipse中使用Hadoop集群模式开发配置及简单程序示例(Windows下)
Hadoop入门配置系列博客目录一览 1. Eclipse中使用Hadoop伪分布模式开发配置及简单程序示例(Linux下) 2. 使用Hadoop命令行执行jar包详解(生成jar.将文件上传到df ...
- BizTalk 2006 简单入门示例程序(附源项目文件下载)
BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...
- (超多图)基于Android studio开发的一个简单入门小应用(超级详细!!)(建议收藏)
基于Android studio开发的一个简单入门小应用 一.前言 二.前期准备 三.开发一个小应用 五.运行应用 一.前言 在暑假期间,我学习JAVA基础,为了能早日实现自己用代码写出一个app的& ...
- 用Java 开发 WebService Axis简单实例
用 Java 开发 WebService Axis 简单实例 在开发之前, 先了解一下AXIS,axis目前出现的2版本以其灵活性,快速开发工具的集成高于xfire而使用者居其上.用Eclipse开发 ...
- Spring MVC 入门示例讲解
在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...
- JAVA开发(Spring框架详解)
javaweb项目几乎已经离不开spring框架了,spring 是一个典型的分层架构框架,它包含一系列的功能并被分为多个功能模块,springboot对spring框架又做了一层封装,以至于很多人对 ...
- Java Servlet系列之Servlet入门
什么是Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服 ...
- Apache Kafka教程A系列:简单生产者示例
原文地址:https://www.tutorialspoint.com/apache_kafka/apache_kafka_simple_producer_example.htm 让我们创建一个使用J ...
- Java开发工具IntelliJ IDEA入门教程:代码片段和代码折叠
本文将介绍在IntelliJ IDEA 使用过程中的 代码片段和代码折叠相关内容. IntelliJ IDEA官方正版下载 代码片段 与全局操作系统快捷方式冲突 预定义的键盘映射并不涵盖所有可能的平台 ...
最新文章
- Python PIPEs
- freemarker ftl模板_效率提升百分之四十,AS模板也太好用了吧
- 详细描述一下 Elasticsearch 索引文档的过程。
- 7-2 天梯地图 (30分)_「月夜枫YYF」不会吧不会吧,枫哥失守8000分阵地!
- 使用PADDING-TOP:(PERCENTAGE)实现响应式背景图片
- hutool中的threadutil_Hutool
- ios 苹果手机适配代码
- 关于spring boot的web.xml
- jmail组件 java,分享Jmail发送邮件工具类
- overlay/static/register/atuo/extern/volatile/const 修饰符的用法
- 海贝音频384khz_海贝音乐app下载-海贝音乐手机版下载v3.3.0 - 星光下载
- 卡内基梅隆计算机金融,卡耐基梅隆大学计算金融项目申请要求是什么?
- 创维E900V22C、E900V22D系列-UWE5621DS芯片语音免拆卡刷固件(当贝桌面)《虎年新春开机动画》
- 国内对公转账银行手续费的几种情形
- 截取Chrome下载的mp3
- 计算机 蚂蚁搬家 教案,小班蚂蚁搬家的教案
- AC宣布退出DeFi
- linu安装python走到300就不动了_linux centos 安装python3.7报错会在load avg: 0.63 [307/416] test_socket卡住 解决办法...
- 雄关漫道真如铁, 而今迈步从头越
- 大雁塔,青龙寺,樱花舞,落尘香
热门文章
- Lesson 4.6 逻辑回归的手动实现
- 拼多多提交赴美上市招股书 陆奇担任独立董事兼薪酬委员会主席
- 神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras 300 用我
- AlphaGo之父哈萨比斯: 先解决智能 再用智能解决一切
- GMIS 2017大会Wesly Mukai演讲:智能运输的未来
- 不是你无法入门自然语言处理(NLP),而是你没找到正确的打开
- 食品安全溯源区块链解决方案探索-转载
- 算法与数据结构(快速排序)
- 《数据结构》知识点Day_01
- php print_r this,PHP 打印函数之 print print_r