如果你是一个java程序,肯定会听过spring。然后你也会对IOC和AOP倍感好奇。我也不罗列概念,如果不懂可以到网上百科一下,很详细。 我简单的引入控制反转(IOC)的形式以及作用
实例1:A类需要B类的实例时,直接在A类中new一个B 的实例。这是中耦合性太强
public class B {
public B(){}
public void bout(){
System.out.println("B");
}
}
public class A {
private B b=new B();
public A(B b){
this.b=b;
}
public void aout(){
System.out.println(“A”);
b.bout();
}
}
实例2:
//定义接口
public interface InterfaceB {
public void out();
}
//实现接口
public class ClassB implements InterfaceB {
public ClassB(){
}
public void out() {
}
}
public class ClassA {
private InterfaceB b;
//这是我们平时用的方法
public ClassA(){
this.b=new ClassB();
}
//这就是我想要结果,将需要的实例由外部类提供。而不由自身实现。
public ClassA(InterfaceB b){
this.b=b;
}
public void out(){
System.out.println("");
this.b.out();
}
}
那么我们要的实例由谁提供管理呢? 这就要说到spring里面的IOC。还是说说它的简单概念。
IOC Inversion of Control,即控制反转,是一个重要的面向对象编程的法则,用来减少耦合度。控制反转还有一个名字叫做依赖注入(Dependency Injection),简称DI。IoC不是什么技术,与GoF一样,是一种设计模式。应用控制反转,对象在被创建的时候,由一个调控所有对象的容器,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。
实例说明问题 :
HelloService 接口
/**
*
*/
package com.ch.hello;
/**
* @author 陈华
*
*/
public interface HelloService {
public void sayHello();
}
HelloServiceImp
/**
*
*/
package com.ch.hello.impl;
import com.ch.hello.HelloService;
/**
* @author 陈华
*
*/
public class HelloServiceImp implements HelloService {
private String helloworld;
public HelloServiceImp() {
}
public HelloServiceImp(String helloworld) {
this.helloworld = helloworld;
}
public void setHelloworld(String helloworld) {
this.helloworld = helloworld;
}
public void sayHello() {
System.out.println(this.helloworld);
}
}
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="HelloService" class="com.ch.hello.impl.HelloServiceImp">
<property name="helloworld" value="hello,android!"></property>
</bean>
</beans>
测试类
/**
*
*/
package com.ch.client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.ch.hello.HelloService;
/**
* @author 陈华
*
*/
public class HelloClient {
public static void main(String[] args) {
ApplicationContext ac=new FileSystemXmlApplicationContext("src/applicationContext.xml");
HelloService helloService=(HelloService)ac.getBean("HelloService");
helloService.sayHello();
}
}
ac.getBean("HelloService"); 这句是关键获取实例
创建一个简单的java工程,引入spring 的core包。用myeclipse6.5就可以啦。非常快
我的 QQ 455927885 一起探讨学习。
- 大小: 20.4 KB
分享到:
相关推荐
Spring作为Java领域最流行的轻量级框架之一,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、数据访问以及Web MVC等,极大地简化了企业级应用的开发流程。 首先,让我们从项目结构开始。在"myHelloWorld"这...
标题 "cas+shiro+spring实例" 涉及到的是一个集成CAS(Central Authentication Service)和Apache Shiro的Spring应用程序实例。这个实例是专为初学者设计的,旨在帮助他们理解和实现基于CAS的单点登录(Single Sign-...
开发者只需要定义对象的配置,如类的bean定义,然后由容器负责实例化、装配和管理这些对象。这降低了组件之间的耦合度,因为对象的依赖关系不再硬编码在代码中,而是通过配置文件或注解来声明。 Spring的bean定义...
实例将展示如何配置Spring Security实现用户认证、授权、CSRF防护等功能。 8. **源码解析** 源码分析部分将深入到Spring的内部工作机制,如IoC容器的初始化、AOP代理的生成、Spring MVC的请求处理流程等,有助于...
在这个"spring完整demo实例"中,我们将深入探讨Spring的主要功能和如何在实际项目中应用它们。 首先,Spring的核心特性——依赖注入,是它简化软件开发的关键。依赖注入允许我们解耦组件,使得代码更加模块化,易于...
Spring是Java领域最广泛使用的框架之一,它提供了一个全面的编程和配置模型,简化了企业级应用的开发。Spring的核心特性包括依赖注入(DI)和面向切面编程(AOP),并有强大的支持用于事务管理、数据访问等。 三、...
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
在本文中,我们将深入探讨如何将Spring MVC、Spring和Hibernate这三大流行框架整合在一起,以构建一个完整的登录实例。这个实例旨在提供一个清晰、简洁且易于理解的代码结构,帮助初学者快速上手。 首先,Spring ...
在Spring框架中,定时任务是实现自动化操作的重要手段,它允许开发者在特定时间点执行特定的任务,例如数据清理、报表生成等。本篇文章将详细探讨Spring中的定时任务,包括配置方式、注解实现以及集成Quartz库进行更...
在与Spring整合时,MyBatis的SqlSessionFactory可以通过Spring的Bean配置管理,实现事务控制和依赖注入。 Spring框架作为全能型的IoC(Inversion of Control)/DI(Dependency Injection)容器,负责管理和装配应用...
本实例将带你深入理解Spring容器的基本使用,通过实际操作来帮助你快速上手。 1. **Spring容器概述** Spring容器是Spring框架的核心,负责管理对象的生命周期和依赖关系。主要有两种类型的容器:BeanFactory和...
在本实例中,iBatis可能是通过XML配置文件或注解方式与Spring MVC集成,实现数据访问层的事务管理和依赖注入。 3. Maven: Maven是Java项目管理工具,用于构建、依赖管理和项目信息管理。`pom.xml`文件是Maven的...
接着,会介绍Spring Cloud的核心组件——Eureka,它是服务注册与发现的实现,让服务提供者和服务消费者能够自动发现彼此。通过实例,读者可以学习到如何创建和注册服务,以及如何实现服务调用。 Spring Cloud ...
这个"最全最经典spring-mvc教程"应该会详细讲解上述所有概念,并可能通过实例演示如何配置、创建和调试Spring MVC项目。对于想要深入理解和使用Spring MVC的开发者来说,这是一份非常宝贵的资源。通过学习这个教程,...
1. **HelloWorld**: 这是最基础的示例,展示了如何在 Spring MVC 应用中集成 Spring Mobile,并简单地根据不同设备展示不同的欢迎消息。 2. **DeviceSpecificViews**: 此示例演示了如何为不同类型的设备创建不同的...
通过这个简单的Spring实例教程,你可以学习如何创建Spring项目,配置Bean,实现AOP,进行数据库操作,构建Web应用,并了解Spring Boot和Spring Cloud的基本用法。实践中,你将逐渐理解Spring如何通过其强大的功能和...
结合Spring框架,可以方便地在企业级应用中实现复杂的时间触发逻辑。本实例提供了可以直接运行的任务调度解决方案,既可以作为服务器启动的一部分自动调用,也可以通过main方法入口手动触发。 在Spring中集成Quartz...
在SSM实例中,Spring作为整个应用的容器,管理着其他组件的生命周期和对象之间的依赖关系。Spring通过XML配置或注解方式来定义bean,使得代码更加解耦和易于维护。 2. **SpringMVC**:SpringMVC是Spring框架的一个...
本实例将帮助初学者理解并掌握 Spring MVC 的基本概念和使用方法。 在 Spring MVC 中,Model 代表应用程序的数据模型,View 负责数据的展示,而 Controller 处理用户请求并协调 Model 和 View 的工作。通过使用 ...
在这个"Spring入门实例"中,我们将探讨Spring的基本概念、核心特性以及如何搭建一个简单的Spring项目。 首先,我们需要了解Spring的核心概念——依赖注入(Dependency Injection,简称DI)。依赖注入是一种设计模式...