spring框架

比较Spring AOP和AspectJ

你离开我真会死。 提交于 2020-03-19 12:51:52
3 月,跳不动了?>>> 介绍 当前有多个可用的AOP库,这些库必须能够回答许多问题: 它与我现有的或新的应用程序兼容吗? 在哪里可以实施AOP? 它与我的应用程序集成的速度有多快? 性能开销是多少? 在本文中,我们将着眼于回答这些问题,并介绍Spring AOP和AspectJ(这两种最流行的Java AOP框架)。 2. AOP 概念 在开始之前,让我们对术语和核心概念进行快速的高层次审查: 切面–一种标准代码/功能,分散在应用程序的多个位置,通常与实际的业务逻辑(例如,事务管理)不同。每个方面都专注于特定的跨领域功能 连接点–这是程序执行过程中的特定点,例如方法执行,构造函数调用或字段分配 通知–方面在特定联接点中采取的操作 切入点–与联接点匹配的正则表达式。每当任何连接点与切入点匹配时,都会执行与该切入点关联的指定建议 编织–将方面与目标对象链接以创建建议对象的过程 3.Spring AOP 和AspectJ 现在,让我们从多个角度讨论Spring AOP和AspectJ,例如功能,目标,编织,内部结构,连接点和简单性 3.1 能力和目标 简而言之,Spring AOP和AspectJ具有不同的目标。 Spring AOP旨在在Spring IoC上提供一个简单的AOP实现,以解决程序员面临的最常见问题。它不打算用作完整的AOP解决方案

Java——Spring Boot入门

左心房为你撑大大i 提交于 2020-03-19 02:22:26
1.简介 spring Boot是为了简化java的开发流程而构建的,即使是使用springMVC框架,也依然需要大量配置和依赖导入, 这无疑是繁琐的,spring Boot采用了”习惯由于配置“的原则,进行一键化部署,这样极大减少了人工开发量。 传统Spring开发流程: Spring Boot开发流程: Spring Boot在依赖管理、容器配置、组件参数这方面,都极大的优化了开发量。 开发者只需要专注于业务逻辑开发。 2.项目构建 1)目录创建以及依赖包引入 spring目录结构: 创建一个项目: 引入项目依赖: <parent> <groupId>org.springframework.boot</groupId> <!--所有spring都要依赖spring-boot-parent才能进行构建--> <artifactId>spring-boot-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <!--使用一些列starter启动器来描述工程所需要功能--> <artifactId>spring-boot-starter-web</artifactId>

Spring 入门

半城伤御伤魂 提交于 2020-03-19 00:12:59
Spring是一个轻量级框架,大大简化了java企业级开发,提供了强大稳定的功能,又没有带来额外的负担,让人们再使用它做每件事的时候都有得体和优雅的感觉。 Spring的两个目的:1)让现有技术更易于使用; 2)是促进良好的编程习惯。 一. Spring IoC   1.理解”控制反转“     控制反转也成为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。     依赖,是再代码中一般指通过局部变量,方法参数,返回值等建立的对于其他对象的调用关系。    扩展:1.除了ClassPathXmlApplicationContext,ApplicationContext接口还有其它实现类。例如:FileSystemXmlApplicationContext也可以用于加载Spring配置文件。       2.除了ApplicationContext及其实现类,还可以通过BeanFactory接口及其实现类对Bean组件实施管理。 二. 理解”面向切面编程“(AOP)   1.面向切面编程(AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件, 常见的AOP抽离出来的组件有: 日志模块;事务模块;安全模块等.   2.简单的说就是在不改变源程序的基础上为代码增加新的功能,对代码进行增强处理。它的设计思想来源于代理设计模式。     基本概念:      

谈谈你对spring框架的理解?

无人久伴 提交于 2020-03-18 17:48:49
我认为spring 就是一个框架的集成器,通常使用spring 来管理action 层和DAO 层。Spring本身有很多的组件,比如:MVC、IOC、AOP、DaoSupport等等。IOC 本身也就是一个容器,它管理了所有的bean 和bean 之间的依赖关系。 IOC 也叫作控制反转,核心是BeanFactory。也就意味着IOC 是基于工厂模式设计的,同时这个工厂生产的bean 默认是单例的。如果想修改单例变成多实例,则需要修改bean 的scope属性,值是prototype。在没有使用IOC 以前,程序员需要自己在对应的类中new 相关依赖的对象。 比如UserAction依赖于UserService完成业务操作,而UserService又依赖于UserDAO完成数据库操作。所以需要在action 中new servcie,在service 中new DAO。这样的方式,是由程序员来管理了对象的生命周期和他们之间的依赖关系,耦合度很高,不利于程序的拓展。所以通过IOC 来管理bean 和依赖关系,可以解耦合。 我们将所有的action、service 和dao等类定义成IOC 的一个bean 组件,此时类的实例化就交给了IOC 的beanFactory,由工厂来负责实例化bean 的对象。IOC 有三种注入方式,属性注入、构造器注入和接口注入。接口注入只是spring

[Java] Spring

ⅰ亾dé卋堺 提交于 2020-03-18 17:44:50
背景 JavaEE 应用框架 基于IOC和AOP的结构J2EE系统的框架 IOC(反转控制):即创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象,是Spring的基础 DI(依赖注入):拿到的对象的属性,已经被注入好相关值了,直接使用即可、 AOP(Aspect Oriented Program 面向切面编程) 功能分为核心业务功能(登录、增删改查)和周边功能(性能统计、日志、事务管理) 周边功能在Spring的面向切面编程AOP思想里,即被定义为 切面 面向切面编程AOP的思想里面,核心业务功能和切面功能分别 独立进行开发 然后把切面功能和核心业务功能 "编织" 在一起 过程 新建项目 添加依赖jar包 准备 pojo 配置 applicationContext.xml 来源: https://www.cnblogs.com/cxc1357/p/12518143.html

Spring Boot入门笔记

帅比萌擦擦* 提交于 2020-03-18 12:24:40
主题词:SpringBoot 什么是Spring Boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 可以理解为spring boot其实就是一个启动spring项目的一个工具而已。从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。 为什么使用Spring Boot? 以前在写spring项目的时候,要配置各种xml文件,还记得曾经被ssh框架支配的恐惧。随着spring3,spring4的相继推出,约定大于配置逐渐成为了开发者的共识,大家也渐渐的从写xml转为写各种注解,在spring4的项目里,你甚至可以一行xml都不写。 虽然spring4已经可以做到无xml,但写一个大项目需要茫茫多的包,maven配置要写几百行,也是一件很可怕的事。 现在,快速开发一个网站的平台层出不穷,nodejs,php等虎视眈眈,并且脚本语言渐渐流行了起来(Node JS,Ruby等),spring的开发模式越来越显得笨重。 总结:无穷无尽的XML文件

几种spring 获取bean的方法

笑着哭i 提交于 2020-03-18 10:57:27
某厂面试归来,发现自己落伍了!>>> 获得spring里注册Bean的四种方法,特别是第三种方法,简单: 一:方法一(多在struts框架中)继承BaseDispatchAction import com.mas.wawacommunity.wap.service.UserManager; public class BaseDispatchAction extends DispatchAction { /** * web应用上下文环境变量 */ protected WebApplicationContext ctx; protected UserManager userMgr; /** * 获得注册Bean * @param beanName String 注册Bean的名称 * @return */ protected final Object getBean(String beanName) { return ctx.getBean(beanName); } protected ActionForward unspecified(ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse

阿里Dubbo疯狂更新,关Spring Cloud什么事?

自作多情 提交于 2020-03-18 09:19:26
最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本。 我上次在写 放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结 这篇文章的时候,就有很多的网友给我留言说,Dubbo 又开始更新了。我当然是清楚的,我也一直在关注着 Dubbo 的走向,在几个月前技术圈里面就有一个消息说是 Dubbo 又开始更新了,大家议论纷纷不知真伪。我还专门跑到 GitHub 上面进行了留言询问,最后在 Dubbo 的 gitter 聊天室里面找到了确信的答案,说是正在组建团队。虽然稍稍有所期待,但也不知道阿里这次拿出了多少的诚意来做这件事,于是我昨天又到 GitHub 逛了一下,发现从 9 月开始,阿里三个月连着发布了四个版本,还是非常有诚意的,值得关注。 Dubbo简介 Dubbo 是阿里巴巴公司一个开源的高性能服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案,使得应用可通过高性能 RPC 实现服务的输出、输入功能和 Spring 框架无缝集成。Dubbo 包含远程通讯、集群容错和自动发现三个核心部分。 它提供透明化的远程方法调用,实现像调用本地方法一样调用远程方法,只需简单配置,没有任何 API 侵入。同时它具备软负载均衡及容错机制

SSH框架的简化(struts2、spring4、hibernate5)

孤人 提交于 2020-03-18 08:24:19
目的 :     通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写。 注意事项:    1、本文提纲:本文通过一个 新闻管理系统的实例 来简化ssh框架的代码编写,功能包括查询数据库中所有新闻信息,删除某条新闻信息。   2、本项目的搭建环境: Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91,Tomcat 8.0,struts-2.3.30-apps,spring-framework-4.2.2.RELEASE,hibernate-release-5.2.2.Final,mysql数据库 第一步: 在eclipse(开发工具)里创建web项目(项目名称:news),并生成web.xml文件。 第二步: 导入本次项目要使用到的jar包(struts2、spring4、hibernate5和mysql)。 第三步: 在配置文件web.xml配置一个struts2的过滤器和spring监听器。 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation

hibernate,struts2,spring面试题

余生长醉 提交于 2020-03-17 23:01:54
Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)