![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring-注解开发
文章平均质量分 69
wyaoyao93
小白
展开
-
30-springMvc注解开发-文件上传下载
文章目录1 文件上传1.1 MultipartFile: SpringMVC中对上传文件的封装1.2 MultipartResolver1.3 实现2 文件下载1 文件上传1.1 MultipartFile: SpringMVC中对上传文件的封装public interface MultipartFile extends InputStreamSource { /*** 获取临时文件名称 */ String getName(); /*** 获取真实(原始)文件名称 */ @Nullable原创 2021-02-15 20:26:00 · 325 阅读 · 1 评论 -
29-springMvc注解开发-异常处理器
文章目录1 异常处理器的思路2 异常处理器接口3 自定义异常处理器springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。1 异常处理器的思路预期异常:通过捕获异常,从而获取异常信息。运行期异常:通过规范代码,减少运行期异常。2 异常处理器接口package org.springframework.web.servlet;import javax.servlet.http.HttpServletRequest;impor原创 2021-02-15 20:05:41 · 118 阅读 · 0 评论 -
28-springMvc注解开发-类型转换器
文章目录1 Converter接口2 案例实现数据类型转换1 Converter接口@FunctionalInterfacepublic interface Converter<S, T> { /** 提供类型转换的逻辑 */ @Nullable T convert(S source);}2 案例之前通过InitBinder和DateTimeFormat注解实现过字符串转date,现在也可以通过Converter实现该功能package study.wyy.sp原创 2021-02-15 19:53:31 · 265 阅读 · 0 评论 -
27-springMvc注解开发-拦截器
文章目录1 如何实现2 执行顺序Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。用户请求----->拦截器----->Controller,在拦截器处就可以做一些前处理和后处理1 如何实现实现HandlerInterceptor接口package study.wyy.spring.anno.intercerptor;import org.springframework.web.servlet.Handle原创 2021-02-15 19:42:45 · 114 阅读 · 0 评论 -
26-springMvc注解开发-跨域问题
文章目录1 什么是跨域2 解决跨域2.1 通过过滤器解决2.2 通过CrossOrigin注解1 什么是跨域当一个域名请求另一个域名的资源时,即是跨域协议,主机,端口任何一个不同即为跨域2 解决跨域核心就是设置响应头,允许跨域2.1 通过过滤器解决通过过滤器统一添加响应头public class CrossOriginFilter implements Filter { @Override public void init(FilterConfig filterCon原创 2021-02-15 19:17:47 · 197 阅读 · 0 评论 -
25-springMvc注解开发-常用注解(二)
文章目录1 @SessionAttribute和@SessionAttributes1.1 介绍1.2 测试测试一:默认存入请求域测试二:使用SessionAttribute注解和SessionAttributes注解2 @ExceptionHandler2.1 介绍2.2 演示2.3 全局异常处理3 @RequestBody3.1 介绍4 @ResponseBody5 rest风格注解1 @SessionAttribute和@SessionAttributes1.1 介绍此注解是用于让开发者原创 2021-02-15 11:16:35 · 71 阅读 · 0 评论 -
24-springMvc注解开发-常用注解(一)
文章目录1 @Controller2 @RequestMapping2.1 介绍2.2 demo2.3 衍生注解3 @RequestParam3.1 介绍3.2 demo4 @InitBinder(不常用)4.1 介绍4.2 demo4.3 补充一个注解:@DateTimeFormat5 @ControllerAdvice注解5.1 介绍6 @RequestHeader和@CookieValue6.1 介绍6.2 示例7 @ModelAttribute7.1 介绍7.2 测试测试一:修饰在方法上测试二:如何原创 2021-02-15 09:44:16 · 1765 阅读 · 1 评论 -
23-springMVc注解开发-环境搭建(基于servlet3.0规范)
1 环境搭建1.1 导入maven坐标<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.6.RELEASE</version> </dependency原创 2021-02-14 09:38:38 · 174 阅读 · 1 评论 -
22-spring注解开发-事务入门
文章目录1 API介绍1.1 PlatformTransactionManager和它的实现类1.2 TransactionDefinition1.3 TransactionStatus2 入门案例2.1 代码实现2.2 开发总结3 事务中的注解3.1 @EnableTransactionManagement3.2 @Transactional3.3 @TransactionEventListener3.1 演示1 API介绍1.1 PlatformTransactionManager和它的实现类此原创 2021-02-13 20:42:42 · 167 阅读 · 0 评论 -
21 spring-注解驱动AOP--获取形参,返回值,异常
文章目录1 获取目标方法形式参数2 获取目标方法的返回值3 获取目标方法的异常1 获取目标方法形式参数所有的通知类型都可以获取目标方法的形式参数比如在打印日志的时候,如何获取执行方法的参数呢:目标类public interface UserService { User save(User user,String id);}package study.wyy.spring.anno.aop.service.impl;import lombok.extern.slf4j.Sl原创 2021-02-12 22:42:10 · 625 阅读 · 0 评论 -
20 spring-注解驱动AOP--切入点表达式
文章目录1 概念1.1 分类1.2 关键字1.3 切入点表达式的通配符1.4 切入点表达式的逻辑条件1 概念指的是遵循特定的语法用于捕获每一个种类的可使用连接点的语法。用于对符合语法格式的连接点进行增强。1.1 分类方法执行:execution(MethodSignature)方法调用:call(MethodSignature)构造器执行:execution(ConstructorSignature)构造器调用:call(ConstructorSignature)类初始化:staticin原创 2021-02-12 22:14:31 · 174 阅读 · 0 评论 -
19 spring-注解驱动AOP--常用注解
文章目录1 @EnableAspectJAutoProxy1.1 暴露代理对象:exposeProxy属性1.2 代理方式:proxyTargetClass属性2 @Aspect注解2.1 value属性(了解)3 @Pointcut3.1 简单使用3.2 修饰符1 @EnableAspectJAutoProxy用于开启注解AOP支持的,表示开启spring对注解aop的支持。它有两个属性,分别是指定采用的代理方式和 是否暴露代理对象,通过AopContext可以进行访问。@Target(Elemen原创 2021-02-11 17:53:57 · 154 阅读 · 0 评论 -
18 Spring注解驱动AOP开发入门
文章目录1 AOP思想及实现原理1.1 AOP思想1.2 实现原理2 Spring中AOP的术语3 Spring注解驱动AOP开发入门3.1 入门案例1 AOP思想及实现原理1.1 AOP思想在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分原创 2021-02-05 20:59:03 · 100 阅读 · 0 评论 -
17 Spring AOP之代理模式
文章目录1 代理模式介绍1.1 是什么1.2 为什么要使用代理模式呢?1.3 代理模式的特点1.4 代理模式的结构和分类分类模式的结构1.5 实现2 案例演示3 静态代理模式的问题4 动态代理4.1 JDK动态代理4.1.1 API介绍4.1.2 实现5 代理模式的应用场景1 代理模式介绍1.1 是什么在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。代理模式:给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理原创 2020-12-24 14:40:52 · 128 阅读 · 0 评论 -
16 Spring扩展之SmartInitializingSingleton
文章目录1 介绍2 测试执行时机1 介绍public interface SmartInitializingSingleton { /** * Invoked right at the end of the singleton pre-instantiation phase, * with a guarantee that all regular singleton beans have been created * already. {@link ListableBeanFactory原创 2020-11-23 22:52:52 · 181 阅读 · 0 评论 -
15 Spring扩展之ApplicationListener
文章目录1 介绍2 测试spring默认发布的事件3 自定义事件发布和监听3 @EventListener1 介绍/** * Interface to be implemented by application event listeners. * Based on the standard {@code java.util.EventListener} interface * for the Observer design pattern. * * <p>As of Spring原创 2020-11-23 22:30:34 · 96 阅读 · 0 评论 -
14 Spring扩展之BeanDefinitionRegistryPostProcessor
文章目录1 介绍2 演示2.1 演示执行顺序2.2 演示注册一个bean1 介绍public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor { /** * Modify the application context's internal bean definition registry after its * standard initialization. All regula原创 2020-11-23 21:42:06 · 110 阅读 · 0 评论 -
13 spring扩展之BeanFactoryPostProcessor
文章目录1 介绍2 演示1 介绍BeanFactory后置处理器:@FunctionalInterfacepublic interface BeanFactoryPostProcessor { /** * Modify the application context's internal bean factory after its standard * initialization. All bean definitions will have been loaded, but no原创 2020-11-23 13:58:16 · 120 阅读 · 0 评论 -
12 Bean的生命周期
文章目录1 Bean的生命周期1.1 创建1.2 初始化1.3 销毁2 @Bean注解中指定初始化和销毁方法3 InitializingBean , DisposableBean3.1 介绍3.2 演示4 JSR2505 三者比较6 BeanPostProcessor6.1 BeanPostProcessor介绍6.2 BeanPostProcessor测试1 Bean的生命周期bean的声明周期:创建初始化销毁我们可以自定义初始化和销毁方法,容器在bean执行到当前生命周期的时候来调用自己原创 2020-11-23 08:29:15 · 71 阅读 · 0 评论 -
11 @Profile注解
文章目录1 介绍2 演示1 介绍@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documented@Conditional(ProfileCondition.class)public @interface Profile { /** * The set of profiles for which the annotated component should be re原创 2020-11-22 20:36:23 · 93 阅读 · 0 评论 -
10 Conditional 注解
文章目录1 介绍2 演示1 介绍@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Conditional { /** * All {@link Condition Conditions} that must {@linkplain Condition#matches match} * in order for the原创 2020-11-22 20:23:25 · 210 阅读 · 0 评论 -
09 Lazy注解
文章目录1 介绍2 演示1 介绍@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Lazy { /** * Whether lazy initialization should occur原创 2020-11-22 11:59:40 · 117 阅读 · 0 评论 -
08 @DependsOn
文章目录1 介绍2 演示1 介绍@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface DependsOn { String[] value() default {};}作用:用于指定某个类的创建依赖的bean对象先创建。spring中没有特定的bean的加载顺序,使用此注解可以指定bean的加载顺序属性:value原创 2020-11-22 11:43:17 · 83 阅读 · 0 评论 -
07 PropertySource
文章目录1 介绍1.1 作用1.2 属性介绍2 入门案例3 PropertySourceFactory3.1 源码分析执行流程4 自定义PropertySourceFactory解析yml1 介绍package org.springframework.context.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotati原创 2020-11-22 09:56:46 · 97 阅读 · 0 评论 -
06 ImportSelector和ImportBeanDefinitionRegistrar
文章目录1 介绍1 介绍我们注入bean对象时,可以选择的方式有很多种。例如:1、我们自己写的类,可以使用@Component,@Service,@Repository,@Controller等等2、我们导入的第三方类库的类,可以使用@Bean注解,也可以使用@Import注解直接引入一个配置类但是当我们的类很多的时候,在每个类上加注解会很繁琐,此时我们就可以采用自定义ImportSelector或者ImportBeanDefinitionRegistrar来实现。在SpringBoot中,@E原创 2020-11-18 08:44:19 · 740 阅读 · 0 评论 -
05 import注解
[toc]新建一个模块进行import注解学习: 05-spring-annnotion-import <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency>原创 2020-11-17 07:41:20 · 107 阅读 · 1 评论 -
04 Bean注解
文章目录1 @Bean注解2 使用演示2.1 基本使用1.2 Bean的name1.3 autowireCandidate 属性1.3 bean的初始化和销毁1 @Bean注解用于讲组件注入ioc容器@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Bean { @AliasFor("name")原创 2020-11-16 20:46:21 · 271 阅读 · 0 评论 -
03 componentScan注解
文章目录1 入门演示2 ComponentScan介绍1 入门演示新建一个模块:03-spring-annnotion-componentScan,引入依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> &l原创 2020-11-15 14:21:46 · 344 阅读 · 0 评论 -
02 @Configuration注解介绍
文章目录1 介绍2 演示1 介绍@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Configuration { @AliasFor(annotation = Component.class) String value() default "";}标记@Component注解,所以用也会呗注入到spring容器中,前提是被扫描到只能用在原创 2020-11-13 07:33:20 · 89 阅读 · 0 评论 -
01 Spring注解开发入门
文章目录1 项目搭建2 入门演示1 项目搭建创建一个父工程spring-annnotion,用户管理依赖版本pom<?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="ht原创 2020-11-12 21:46:10 · 107 阅读 · 1 评论