一、Ioc

  1)概念:Ioc(Inversion Of Control)控制反转,也被称为依赖注入DI(Dependency Injection),是面向对象编程的一种思想。

  2)作用:用来减低程序代码之间的耦合度。

1、深入剖析什么叫依赖?

  解析:依赖在代码中一般指通过局部变量、方法参数、返回值等建立的对于其他对象调用的关系。(eg.在A类的方法中,实例化B类的对象并调用其方法已完成特定的功能,我们就说A类依赖B类)

2、控制反转的思想是什么?

  解析:控制反转的思想是:将业务逻辑层不在依靠自身的代码去获取所依赖的具体DAO对象,而是把这项工作转交给了“第三方”。

3第一个案例-------------------->输出Hello,Spring

第一步:初识jar

第二步:创建HappyService类

package cn.happy.spring;
//第一个案例
public class HappyService {
//定义一个变量
private String info;
//定义一个方法
public void work(){
System.out.println("Hello,"+info);
}
@Override
//重写了object类的ToString()方法;说白了也就是object类的toString()方法不满足你的需求
//你根据需求重写一个toString方法
public String toString(){
return "HappyService[info="+info+"]";
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
} }

第三步:创建一个配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
"> <!-- IOC 将HappyService 交给Spring管理 -->
<bean id="happy" class="cn.happy.spring.HappyService">
<!-- DI 从setInfo方法得知,HelloService依赖info属性,注入-->
<property name="info" value="spring"/>
</bean>
</beans>

第四步:测试类

//第一个案例:“输出HelloSpring”
@Test
public void testHappyService(){ //ClassPathXmlApplicationContext实例化spring上下文
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
// ApplicationContext的getBean方法,根据id获取bean的实列
HappyService service=(HappyService) context.getBean("happy");
System.out.println(service.getInfo());
//执行work方法
/* service.work();*/
}

  解析:ApplicationContext是一个接口

      * 作用:负责读取Spring配置文件,管理对象的加载、生成,维护Bean对象与Bean对象之间的依赖关系,负责Bean的生命周期
     ClassPathXmlApplicationContext是ApplicationContext接口的实现类
      * 作用:用于从classpath路径中读取Spring配置文件

 二、AOP

  1)Aop的发展历史:

    解析:AOP是面向切面编程(Aspect Oriented Programming)是软件编程思想发展到一定阶段的产物,是面向对象编程(Obejct Oriented Programming OOP)的

       有益补充。

  2)AOP的用途:

    AOP一般适用于具有横切逻辑的场合,如访问控制、事务管理、性能监测等。

  3)由上述我们也许疑问什么是横切逻辑呢?

    解析:在业务系统中,总有一些散落、渗透到系统各处不得不处理的事情,这些穿插在既定业务中的操作就是所谓的“横切逻辑”,也称为“切面”。

  4)AOP的作用:简单的说就是在不改变原程序的基础上为代码段增加新的功能,对代码进行增强处理。它的设计思想来源代理设计模式。

  

初识Spring框架的更多相关文章

  1. 初识 Spring 框架

    初识 Spring 框架可以帮助我们构建规范的.优秀的应用程序,简化烦琐的编码过程. Spring 是一个非常著名的轻量级的企业级开源框架,Spring 的目标是使 Java EE 更易用并促进良好的 ...

  2. 初识Spring框架实现IOC和DI(依赖注入)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...

  3. 【10分钟学Spring】:(一)初识Spring框架

    简介 Spring是一个轻量级的企业级的Java开发框架.主要是用来替代原来更加重量级的企业级Java技术,比如EJB(Enterprise JavaBean).Java数据对象(Java Data ...

  4. 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

    在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单 ...

  5. 初识Spring Boot框架

    前面的铺垫文章已经连着写了六篇了,主要是介绍了Spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...

  6. 初识Spring Boot框架和快速入门

    前面的铺垫文章已经连着写了六篇了,主要是介绍了spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...

  7. 深入理解Spring(一):初识Spring

    深入理解Spring(一):初识Spring 一. Spring介绍        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...

  8. Spring框架概述

    Spring是最流行的Java企业级应用开发框架,全球数以百万的开发者在使用Spring框架创建高性能.易测试.可重用的代码. Spring框架的核心特性可以应用于任何Java应用,但扩展的JavaE ...

  9. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

随机推荐

  1. WPF自定义控件与样式(6)-ScrollViewer与ListBox自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Scr ...

  2. Android登录等待效果

    上一篇为大家分享了关于AsyncTask的使用,本篇结合AsyncTask为大家介绍一个我们经常看到的一个效果,就是当我们点击登录后,会弹出一个请等待的小窗体,这个效果是如何实现的呢?本篇我就带大家简 ...

  3. App乱世,3721离我们有多远

    [总结]根据众多网友的评论,看来还是WP比较给力,IOS太贵...会对手机进行优化,安卓还行,如果给中老年人用WP比较好 声明:合理讨论,禁止骂人言论,本人也不是5毛党,发表下个人看法而已. 快过年了 ...

  4. Network - 互联网协议入门

    珠玉在前,不在赘言 互联网协议入门(一) 互联网协议入门(二) 通信协议:HTTP.TCP.UDP 互联网协议入门 互联网协议入门深入 当你输入一个网址,实际会发生什么? Wireshark基本介绍和 ...

  5. 学习使用 jQuery & CSS3 制作照片堆栈效果

    在这个小实验中,我们使用 jQuery & CSS3 创建了一个交互式的照片堆栈效果.提供了一些模拟现实的互动的可能性给用户.这个想法的思路是:有一些照片在桌面上可以拖放一样,堆放和删除,每个 ...

  6. Azure ARM (9) 创建ARM模式下的虚拟机网络

    <Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azu ...

  7. [logstash-input-file]插件使用详解

    前篇介绍过Logstash的使用,本篇继续深入,介绍下最常用的input插件——file. 这个插件可以从指定的目录或者文件读取内容,输入到管道处理,也算是logstash的核心插件了,大多数的使用场 ...

  8. C# 线程系列三 定时器线程

    上一篇文章我们讲诉了自定义线程执行器和任务处理器 我们继续来讲解自定义线程的定时执行器,我们在很多场景下需要做到某些状态或者数据进行更新,如果事情很多很杂,很时候时候会创建很多不同的定时器那么势必会照 ...

  9. HT for Web整合OpenLayers实现GIS地图应用

    HT for Web作为逻辑拓扑图形组件自身没有GIS功能,但可以与各种GIS引擎即其客户端组件进行融合,各取所长实现逻辑拓扑和物理拓扑的无缝融合,本章将具体介绍HT for Web与开发免费的Ope ...

  10. RegularHelper

    private const string m_NumberPattm = @"^[-+]?(0{1}|(([1-9]){1}[0-9]{0,6}))?$"; private con ...