Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
public class GreetingServiceImpl {
private String say;
public void sayGreeting() {
System.out.println("我说的是:"+say);
}
/**通过set方法进行赋值*/
public void setSay(String say) {
this.say = say;
}
}
----------------------------------------------
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.0.xsd">
<bean id="greetingServiceImpl" class="cn.csdn.service.GreetingServiceImpl">
<property name="say" value="Hello"></property>
</bean>
</beans>
--------------------------------------------------
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.csdn.service.GreetingServiceImpl;
public class GreetingTest {
@Test
public void test(){
/**解析applicationContext.xml文件*/
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
/**调用getBean方法获取bean对象 需要强制造型*/
GreetingServiceImpl gsi = (GreetingServiceImpl) ac.getBean("greetingServiceImpl");
/**调用对象相应的方法*/
gsi.sayGreeting();
}
}
-------------------------------------
输出的结果:
我说的是:Hello
分享到:
相关推荐
我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频
@Autowired 是 Spring 中最常用的注入方法之一,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Autowired 的工作原理是,在启动 Spring IoC 时,容器自动装载了一个 ...
Set注入是最常见的注入方式,它通过setter方法来设置对象的依赖。首先,你需要在类中声明需要注入的属性,并提供对应的setter方法。然后,在Spring的配置文件中,定义bean并指定其属性值。例如,如果你有一个`...
在本章中,我们将深入探讨Spring框架的核心特性之一——自动装配和方法注入。Spring作为一款广泛应用的Java企业级开发框架,极大地简化了依赖管理,提高了代码的可测试性和可维护性。自动装配和方法注入是Spring实现...
标题中的“spring介绍(set和构造器注入)”是指在Spring框架中两种主要的依赖注入(Dependency Injection,简称DI)方式:setter注入和构造器注入。在Spring框架中,DI是一种核心特性,它允许我们解耦组件之间的关系...
使用spring的依赖注入,来实现servlet中注入dao层
总结来说,Spring的IoC方法注入提供了一种灵活的方式来管理和初始化对象,通过`@PostConstruct`和`@PreDestroy`注解,或者实现`InitializingBean`和`DisposableBean`接口,我们可以在对象生命周期的关键点执行特定的...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇将详细讲解setter注入和构造注入这两种常见的DI方式,并结合...
3. **setter方法注入** - **定义bean和依赖**: 在Spring配置文件中,使用`<bean>`标签定义一个bean,并通过`<property>`标签指定其依赖。例如,如果我们有一个`UserService`类依赖于`UserDao`,配置可能如下: ```...
在静态工具类中,使用了public static的成员变量来存储配置信息,使用非静态的set方法将配置信息注入到成员变量中。其他类可以通过公有的静态get方法来获取这些配置信息。 在上面的代码中,使用了MongoConfig类来...
这种方式是通过实现特定的接口,由Spring在运行时动态调用接口方法注入依赖。Spring没有内置的接口注入机制,但可以通过实现`InitializingBean`或`DisposableBean`接口来自定义初始化和销毁逻辑。例如: ```java ...
本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...
Spring 框架是 Java 开发中非常重要的一个组件,它提供了一种强大的依赖注入(Dependency Injection,简称 DI)机制,使得对象之间的依赖关系可以通过配置文件或者注解来管理,而不是硬编码在类的内部。这有助于提高...
- **依赖注入**:依赖注入是一种设计模式,通过依赖注入,一个类的对象不再负责创建其依赖的对象,而是由外部容器(Spring容器)来负责创建这些依赖并注入到需要它们的地方。 #### 三、Spring IoC容器的工作原理 ...
3. 接口注入:Spring提供了一个SPI(Service Provider Interface)机制,允许通过实现特定接口并注入服务来实现依赖注入。这种方式在大型项目中常见,便于扩展和管理服务。 Spring依赖注入的底层实现主要依赖于反射...
SQL注入是一种严重的安全威胁,它允许攻击者通过在应用程序的输入字段中插入恶意SQL代码来执行未经授权的数据库操作。攻击者通常寻找没有适当验证和过滤的用户输入,然后利用这些漏洞来构造能改变原始SQL语句意图的...
在配置类上使用`@Configuration`注解,然后使用`@Bean`注解来定义方法,该方法返回的对象会被Spring容器注册为一个Bean。 ```java @Configuration public class AppConfig { @Bean public Teacher teacher() {...
Spring 框架提供了多种方式来实现 DI,包括接口注入、上下文注入、Setter 方法注入和构造方法注入。 A. 接口注入:通过接口来注入依赖对象,例如,DeptDAO 接口和它的实现类 DeptDAOImpl。 B. 上下文注入:通过 ...
NULL 博文链接:https://zhangyulong.iteye.com/blog/856986