spring自定义注解

#2020.1.26笔记——springdatajpa

 ̄綄美尐妖づ 提交于 2020-01-26 23:44:24
2020.1.26笔记——springdatajpa 使用jpa的步骤: 1. 导入maven坐标 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>springDataJpa2</artifactId> <version>1.0-SNAPSHOT</version> <properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2

Spring MVC简介

不羁的心 提交于 2020-01-25 12:25:24
Spring MVC体系概述   Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Spring MVC的总导演、总策划,它负责截获请求并将其分派给相应的处理器处理。Spring MVC框架包括注解驱动控制器、请求及响应的信息处理、视图解析、本地化解析、上传文件解析、异常处理及表单标签绑定等内容。 Spring MVC体系结构   Spring MVC是基于Model 2实现的技术框架,Model 2是经典的MVC(Model、View、Control)模型在Web应用中的变体,这个改变主要源于HTTP协议的无状态性。Model 2的目的和MVC一样,也是利用处理器分离模型、视图和控制,达到不同技术层级间松散层耦合的效果,提高系统灵活性、复用性和可维护性。   从接收请求到返回相应,Spring MVC框架的众多组件通力配合、各司其职,有条不紊地完成分内工作。在整个框架中,DispatcherServlet处于核心的位置,它负责协调和阻止不同组件以完成请求处理并返回相应的工作。和大多数Web MVC框架一样,Spring MVC通过一个前端Servlet接受所有的请求,并将具体工作委托给其他组件进行处理,DispatcherServlet就是Spring MVC的前端Servlet。

spring注解开发-AOP(含原理)

你说的曾经没有我的故事 提交于 2020-01-25 10:39:21
一:AOP基本使用 AOP指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; 步骤一:导入aop模块;Spring AOP:(spring-aspects) <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.12.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.3.12.RELEASE</version> </dependency> 步骤二:定义一个业务逻辑类;在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,环绕) public class MathCalculator { public int div(int i,int j){ System.out.println("MathCalculator...method..."); return i/j; } } 步骤三:定义一个日志切面类

Spring3.1新属性管理API:PropertySource、Environment、Profile

大兔子大兔子 提交于 2020-01-25 03:48:57
Spring3.1提供了新的属性管理API,而且功能非常强大且很完善,对于一些属性配置信息都应该使用新的API来管理。虽然现在Spring已经到4版本了,这篇文章来的晚点。 新的属性管理API PropertySource :属性源,key-value属性对抽象,比如用于配置数据 PropertyResolver :属性解析器,用于解析相应key的value Environment :环境,本身是一个PropertyResolver,但是提供了Profile特性,即可以根据环境得到相应数据(即激活不同的Profile,可以得到不同的属性数据,比如用于多环境场景的配置(正式机、测试机、开发机DataSource配置)) Profile :剖面,只有激活的剖面的组件/配置才会注册到Spring容器,类似于maven中profile 也就是说,新的API主要从配置属性、解析属性、不同环境解析不同的属性、激活哪些组件/配置进行注册这几个方面进行了重新设计,使得API的目的更加清晰,而且功能更加强大。 PropertySource key-value对,API如下所示: Java代码 public String getName() //属性源的名字 public T getSource() //属性源(比如来自Map,那就是一个Map对象) public boolean

曹工说Spring Boot源码(7)-- Spring解析xml文件,到底从中得到了什么(上)

无人久伴 提交于 2020-01-25 00:55:21
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean Definition到底是什么,咱们对着接口,逐个方法讲解 曹工说Spring Boot源码(3)-- 手动注册Bean Definition不比游戏好玩吗,我们来试一下 曹工说Spring Boot源码(4)-- 我是怎么自定义ApplicationContext,从json文件读取bean definition的? 曹工说Spring Boot源码(5)-- 怎么从properties文件读取bean 曹工说Spring Boot源码(6)-- Spring怎么从xml文件里解析bean的 工程代码地址 思维导图地址 工程结构图: 概要 大家看到这个标题,不知道心里有答案了没?大家再想想,xml文件里都有什么呢? 这么一想,spring的xml文件里,内容真的很多,估计很多元素你也没配置过,尤其是这两年新出来的 程序员 ,估计都在吐槽了,现在不都是注解了吗,谁还用xml?但其实,不管是xml,还是注解,都是配置信息,只是不同的表现形式而已,看过我前面几讲的同学,应该知道,我们用json、properties文件写过bean的配置信息。 所以,具体形式不重要

Java框架之SpringMVC 05-拦截器-异常映射-Spring工作流程

久未见 提交于 2020-01-24 19:36:02
SpringMVC 拦截器   Spring MVC也可以使用拦截器对请求进行拦截处理,可以自定义拦截器来实现特定的功能,自定义的拦截器可以 实现 HandlerInterceptor接口 中的 三 个方法 , 也可以 继承HandlerInterceptorAdapter 适配器类按照需要那个方法,就实现哪个方法 过滤器与拦截器区别   过滤器:过滤器在Servlet之前操作   拦截器:拦截器在Servlet之后,请求处理器(Controller)之前操作。 拦截器三个方法   ① preHandle ():这个方法在(Controller) 处理器处理请求之前被调用 ,在该方法中对用户请求 request 进行处理。如果该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回 true ;如果不需要再调用其他的组件去处理请求,则返回false。(如果返回false则后续操作都不再执行,类似于过滤器的 doFilter 所以正常情况下不要返回 false)   ② postHandle ():这个方法在(Controller) 处理器处理完请求后,但是 DispatcherServlet 向客户端返回响应前 (在视图渲染之前)被调用 ,在该方法中对用户请求request进行处理。   ③ afterCompletion ():这个方法在

Spring AOP 源码解析

若如初见. 提交于 2020-01-23 10:46:26
[TOC] 之前写过 IOC 的源码分析,那篇文章真的有点长,看完需要点耐心。很多读者希望能写一写 Spring AOP 的源码分析文章,这样读者看完 IOC + AOP 也就对 Spring 会有比较深的理解了。今天终于成文了,可能很多读者早就不再等待了,不过主要为了后来者吧。 本文不会像 IOC 源码分析那篇文章一样,很具体地分析每一行 Spring AOP 的源码,目标读者是已经知道 Spring IOC 源码是怎么回事的读者,因为 Spring AOP 终归是依赖于 IOC 容器来管理的。 阅读建议:1、先搞懂 IOC 容器的源码 ,AOP 依赖于 IOC 容器来管理。2、仔细看完 Spring AOP 使用介绍 这篇文章,先搞懂各种使用方式,你才能"猜到"应该怎么实现。 Spring AOP 的源码并不简单,因为它多,所以阅读源码最好就是找到一个分支,追踪下去。 本文定位为走马观花,看个大概,不具体到每一个细节。 目录: 前言 这一节,我们先来"猜猜" Spring 是怎么实现 AOP 的。 在 Spring 的容器中,我们面向的对象是一个个的 bean 实例,bean 是什么?我们可以简单理解为是 BeanDefinition 的实例,Spring 会根据 BeanDefinition 中的信息为我们生产合适的 bean 实例出来。 当我们需要使用 bean 的时候

spring AOP

依然范特西╮ 提交于 2020-01-23 05:00:12
  在软件开发中,分布于应用中多处的功能被称为 横切关注点 。通常,这些横切关注点从概念上是与业务逻辑相分离的(但是往往直接嵌入到应用的业务逻辑之中)。将这些横切关注点与业务逻辑相分离是 面向切面编程 (AOP)所要解决的。依赖注入有助于应用对象之间的解耦,而AOP可以实现横切关注点与他们所影响的对象之间的解耦。   横切关注点可以被模块化为特殊的类,这些类被称为 切面 。   切面的工作被称为 通知 (Advice)。通知定义了切面是什么以及何时使用。除了描述切面要完成的工作,通知还解决了何时执行这个工作的问题。它应该应用于某个方法被调用之前?之后?之前和之后?还是只在方法抛出异常时?   spring切面可以应用5种类型的通知。   1)Before——在方法别调用之前调用通知。   2)After——在方法完成之后调用通知,无论方法执行是否成功。   3)After-returning——在方法成功执行之后调用通知。   4)After-throwing——在方法抛出异常后调用通知。   5)Around——通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。    连接点(Joinpoint) 是在应用执行过程中能够插入切面的一个点。这个点可以是调用方法时、抛出异常时、甚至是修改一个字段时。切面代码可以利用这些点插入到应用的正常流程之中,并添加新的行为

Spring常见面试题总结(超详细回答)

走远了吗. 提交于 2020-01-22 09:10:26
1、Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。 主要由以下几个模块组成: Spring Core:核心类库,提供IOC服务; Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); Spring AOP:AOP服务; Spring DAO:对JDBC的抽象,简化了数据访问异常的处理; Spring ORM:对现有的ORM框架的支持; Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传; Spring MVC:提供面向Web应用的Model-View-Controller实现。 2、Spring 的优点? (1)spring属于低侵入式设计,代码的污染极低; (2)spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性; (3)Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。 (4)spring对于主流的应用框架提供了集成支持。 3、Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系

spring aop使用,spring aop注解,Spring切面编程

人盡茶涼 提交于 2020-01-21 12:36:09
================================ ©Copyright 蕃薯耀 2020-01-21 https://www.cnblogs.com/fanshuyao/ 一、第一步,引用依赖类,在Pom.xml加入依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.12.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.12.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.1.12.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId>