Spring-2

摘要:
从spring-1的示例中,我们可以看到spring相当于一个容器。在这种情况下,您可以使用Spring框架作为核心模块,轻松高效地管理所有对象依赖关系。当然,需要首先修改弹簧配置文件吗?snake//注释2的输出是:Spring:您好!现在,只需更改SpringXML文件以使用不同的输出生成器。只修改Spring XML文件而不修改代码,这意味着更少的错误。使用Spring框架,这一用于对象依赖性管理的依赖注入的有用特性使大型Java项目的开发和管理更加优雅、高度灵活且易于维护

从spring-1的例子中我们可以发现,Spring相当于是一个容器。HelloWorld对象的生成方式不再是通过new的方式实现,而是从spring中间去获取。

原来对创建对象方式    HelloWorld  obj  = new Helloworld();

弊端: 输出生成的每一个变化可能涉及代码变化。如果此代码分散在你的项目中,输出生成的每一次变化都会让你受苦。

使用spring以后:        HelloWorld obj = (HelloWorld) context.getBean("helloBean");

其中context对象就是spring的容器对象,通过spring配置文件中所所定义的bean元素进行 实例化对象。

好处:面向对象的概念,是一个很好的设计来打破系统进入一个组可重用的对象。然而,当系统变大,尤其是在Java项目,庞大的对象依赖关系将一直紧密耦合引起对象难以管理或修改。在这种情况下,可以使用Spring框架作为一个核心模块轻松高效地管理所有的对象依赖。

当然 spring配置文件中需要先进行修改由原来的

<?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:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
    <bean   class="com.snake.core.HelloWorld">
        <property name="name" value="snake"></property>
    </bean>

</beans>

修改后

<?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:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
    <!-- 注释1
   <bean class="com.snake.core.HelloWorld"> <property name="name" value="snake"></property> </bean>
-->
  
  <!--注释2 <bean class="com.snake.core.HelloWorld"> <property name="name" value="oop"></property> </bean>
  -->
</beans>

这个时候 我们可以选择在springXML文件中 取消掉注释1 或 注释2 同样的一段代码 在控制台中输出的结果不一样。

  HelloWorld obj = (HelloWorld) context.getBean("helloBean");

  obj.printHello();

//取消注释1 输出的是:Spring  : Hello ! snake

//取消注释2 输出的是:Spring  : Hello ! oop

注意点:bean标签中不允许出现相同的id

现在,只需要改变 Spring XML 文件使用不同的输出生成器。只修改 Spring XML 文件而不需要无码修改,这意味着更少的错误。

有了Spring框架 - 这种依赖注入(DI)为对象的依赖关系管理有用的特性,使大型Java项目开发管理中更优雅的,高度灵活和便于维护

免责声明:文章转载自《Spring-2》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇我们是如何做DevOps的?C++11新特性,利用std::chrono精简传统获取系统时间的方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.NET CORE与Spring Boot编写控制台程序应有的优雅姿势

本文分别说明.NET CORE与Spring Boot编写控制台程序应有的“正确”方法,以便.NET程序员、JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写的控制台程序要好。 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因系统设计需求而异,我这里所谓的正确方法是指...

SaaS模式应用之多租户系统开发(单数据库多Schema设计)

SaaS是Software-as-a-Service(软件即服务)的简称,这边具体的解释不介绍。 多租户的系统可以应用这种模式的思想,将思想融入到系统的设计之中。 一、多租户的系统,目前在数据库存储上,一般有三种解决方案: 1.独立数据库 2.共享数据库,隔离数据架构 3.共享数据库,共享数据架构 这里我就系统的实际需求情况,选择了第二种解决方案,下面简单...

SpringBoot入门 (三) 日志配置

上一篇博文记录了再springboot项目中读取属性文件中配置的属性,本文学习在springboot项目中记录日志。   日志记录在项目中是很常见的一个功能了,对排查问题有很大帮助,也可以做分类分析及统计。SpringBoot内部使用的是Commons Logging做日志的记录,但是对其他的日志框架也提供了默认的配置,如:Java util Loggin...

SQL的OPENROWSET开启和使用方法

[转载]SQL的OPENROWSET开启和使用方法   1、开始 —>  所有程序  —>  Microsoft SQL Server 2005  —>  配置工具  —>  SQL Server外围应用配置器  —>  功能的外围应用配置器  —>  实例名  —>  Database Engine  —&...

21.Shiro在springboot与vue前后端分离项目里的session管理

1.前言 当决定前端与后端代码分开部署时,发现shiro自带的session不起作用了。 然后通过对请求head的分析,然后在网上查找一部分解决方案。 最终就是,登录成功之后,前端接收到后端传回来的sessionId,存入cookie当中。 之后,前端向后端发送请求时,请求Head中都会带上这个sessionid。 后端代码通过对这个sessionid的解...

技术问答集录(四)(spring aop Lombok 原理)

问题: Spring AOP和Lombok是什么原理? 如何实现一个自定义的Spring Boot Starter? 1.Spring AOP和Lombok是什么原理? Spring AOP原理 ①AOP: AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提...