spring框架

Spring XML配置的12个技巧

懵懂的女人 提交于 2020-02-16 22:30:31
Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。Spring利用依赖注入可以获得简单而有效的测试能力。Spring beans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进行一个使用了大量bean的大项目中它将变得难以阅读和控制。 在这篇文章中我将给你展示12种的有关Spring XML配置文件的最佳技巧。它们中的一些具有更多的实际意义,而不仅是最好的技巧。请注意另外一些因素,例如域模型的设计,会影响到XML配置,但是这篇文章更关注于XML配置的可读性和可操控性。 Twelve Best Practices For Spring XML Configurations 原稿位置: http://www.onjava.com/pub/a/onjava/2006/01/25/spring-xml-configuration-best-practices.html by Jason Zhicheng Li 01/25/2006 Spring 是一个强有力的 java 程序框架,其被广泛应用于 java 的程序中。它用 POJO 提供了企业级服务。 Spring 利用依赖注入可以获得简单而有效的测试能力。 Spring beans ,依赖关系

Spring基于XML方式的使用

五迷三道 提交于 2020-02-16 22:09:16
一、IoC配置 IoC的配置是通过Spring的xml文件的 bean标签 进行的。 1、bean标签介绍 bean标签一般是在xml文件进行配置的,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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans> 可在其中进行bean标签的配置。 1.1、bean标签的作用 bean标签用于配置被spring容器管理的bean的信息 注意 :bean标签配置的bean的创建默认是调用无参数的构造方法,若没有无参构造方法则不能创建成功。 1.2、bean标签属性 id:给对象在 容器中 提供一个唯一标识。用于获取对象。 class:指定类的全限定名

Spring Boot与分布式(分步式、Dubbo/Zookeeper、Spring Boot/Cloud)

只谈情不闲聊 提交于 2020-02-16 22:00:08
一、分布式应用 在分布式系统中,国内常用zookeeper+dubbo组合,而Spring Boot推荐使用全栈的Spring,Spring Boot+Spring Cloud。 分布式系统: 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。 二、Zookeeper和Dubbo ZooKeeper ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Dubbo

Spring自学笔记1--介绍与搭建

天涯浪子 提交于 2020-02-16 21:58:08
一、什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 Rod Johnson在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了 解决企业应用开发的复杂性而创建的 。框架的主要 优势之一就是其分层架构 ,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的 JavaBean来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring 是一个分层的 JavaSE/EEfull-stack( 一站式) 轻量级开源框架。 EE 开发分成三层结构: * WEB 层:Spring MVC. * 业务层:Bean 管理:(IOC) * 持久层:Spring 的 JDBC 模板.ORM 模板用于整合其他的持久层框架. 二、搭建 1.导包 4个核心包和日志包 2.编写相关类 public interface UserDao { public void sayHello(); }

SSH框架

雨燕双飞 提交于 2020-02-16 13:36:07
Ssh 为 struts+spring+hibernate的一个集成 框架 ,是目前较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层: 表示层 、 业务逻辑层 、 数据持久层 和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、 维护 方便的 Web应用程序 。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的 模型 部分,控制业务跳转,利用Hibernate框架对 持久层 提供支持,Spring做管理,管理struts和hibernate。具体做法是:用 面向对象 的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现 Java 类与数据库之间的转换和访问,最后由Spring做 管理 ,管理struts和hibernate。 业务流程 编辑 系统的基本 业务 流程 是: 在 表示层 中,首先通过JSP页面实现 交互界面 ,负责接收请求(Request)和传送响应(Response),然后Struts根据 配置 文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中

ssh框架

一世执手 提交于 2020-02-16 12:57:01
Struts的优缺点 Struts优点: (1)实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。 (2)具有丰富的Tag标签库,如能灵活运用,能大大提高开发效率。 (3)页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有很大好处。 (4)提供Exception处理机制。 (5)数据库链接池的管理。 (6)支持应用国际化。 Struts缺点: (1)转到展示层时,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器 (2)Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。 (3)测试不方便。Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。 (4)类型的转换。Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化

SSH框架整体理解和总结

佐手、 提交于 2020-02-16 11:43:02
首先, SSH 不是一个框架,而是多个框架( struts+ spring + hibernate )的集成 ,是目前较流行的一种Web应用程序开源 集成 框架,用于构建灵活、易于扩展的多层Web应用程序。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层 (实体层)。 Struts 作为系统的 整体基础 架构 ,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持 。 Spring 一方面作为一个轻量级的 IoC 容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使 Struts 和 Hibernate 更好地工作。 由 SSH 构建 系统的基本业务流程是: 1 、 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。 2 、 在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。 3 、 在持久层中

Spring AOP(面向切面编程)

一曲冷凌霜 提交于 2020-02-16 02:49:20
1.Spring 的 AOP 简介 1.1 什么是 AOP AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 1.2 AOP 的作用及其优势 作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强 优势:减少重复代码,提高开发效率,并且便于维护 1.3 AOP 的底层实现 实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。 1.4 AOP 的动态代理技术 常用的动态代理技术 JDK 代理 : 基于接口的动态代理技术 cglib 代理:基于父类的动态代理技术 1.5 JDK 的动态代理 ①目标类接口 public interface TargetInterface { public void method ( ) ; } ②目标类 public class

微服务架构到底应该如何选择?

混江龙づ霸主 提交于 2020-02-15 22:35:23
原文: 微服务架构 微服务架构到底应该如何选择? 什么是微服务? 微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。 微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。 主要有一下几个特点 服务拆分粒度更细 微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。 服务独立部署 每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机上可以部署多个 Docker 实例,每个 Docker 实例可以部署一个微服务的代码。 服务独立维护 每个微服务都可以交由一个小团队甚至个人来开发、测试、发布和运维,并对整个生命周期负责。 服务治理能力要求高 因为拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。 微服务架构下,服务调用主要依赖下面几个基本组件: 服务描述 注册中心 服务框架 服务监控 服务追踪 服务治理 开源RPC框架介绍 Dubbo

Spring Data JPA

别等时光非礼了梦想. 提交于 2020-02-15 22:05:58
Spring Data JPA JPA规范 Spring Data JPA入门案例 Spring Data JPA 的实现过程 Spring Data JPA查询 Specifications 动态查询 JPA 中的一对多 JPA 中的多对多 对象导航查询 JPA规范 JPA Spring Data JPA入门案例 Spring Data JPA入门 Spring Data JPA 的实现过程 注入的 customerDao 对象,本质上是通过 JdkDynamicAopProxy 生成的一个代理对象 SimpleJpaRepository 当中封装了JPA的操作(借助 JPA 的 API 完成数据库的 CRUD ) 通过 hibernate 完成数据库操作(封装了 jdbc ) Spring Data JPA查询 Spring Data JPA查询 JPQL 的方式查询 @Query 注解的使用:只需在方法上面标注该注解,同时提供一个 JPQL 查询语句即可 使用 @Query 来执行一个更新操作,需要用 @Modifying 来将该操作标识为修改查询 SQL 的方式查询 @Query 注解的使用:只需在方法上面标注该注解,同时提供一个 SQL 查询语句即可 要将 @Query 中的 nativeQuery 改为 true 方法命名规则查询 查询方法以 findBy 开头