Spring
文章平均质量分 56
mml_慢慢来
坚持别人不能坚持的坚持,才能享受别人不能享受的享受。
展开
-
spring mvc 关于对optional的处理和自定义处理
springmvc4.1+能够支持optional参数,但不支持对象内field的optional。举个例子//对于这种直接在方法上定义的optional的基本类型或者引用类型//比如参数里没有id,或者没有obj,那么spring mvc会设置一个空的Optional对象//咱们可以通过Optional对象进行空判断@GetMapping("/get")public void test1(Optional<String> id, Optional<Object>原创 2021-10-28 14:51:54 · 648 阅读 · 0 评论 -
spring和nacos的服务注册
Spring Cloud Commons提供了服务发现、负载平衡和断路器等模式的一个公共抽象层,所有 Spring Cloud 客户端都可以使用该抽象层,独立于实现(例如,通过 Nacos 或 Consul 进行发现)。 得益于Spring Commons的规范,Nacos也实现了该规范,所以开发过程中只需要调用相关接口,主要使用的是 1.DiscoveryClient接口,提供了获取所有服务和所有实例的方法; 2.ServiceRegi...原创 2021-09-30 16:18:55 · 271 阅读 · 0 评论 -
nacos和gateway服务路由缓存刷新
gateway的服务注册路由默认是第一次启动的时候就加载,有个监听器RouteRefreshListener类,里面定义了一些事件,比如ContextRefreshEvent,HeartbeatEvent等事件,然后都会调用ApplicationEventPubilsher.publishEvent(new RereshRoutesEvent(this));这里应该就是程序启动时进行的路由刷新操作了。然后gateway有一个刷新的endpoint,/actuator/ga...原创 2021-09-30 16:09:29 · 2326 阅读 · 2 评论 -
spring加载机制
// 准备工作,记录下容器的启动时间、标记“已启动”状态、处理配置文件中的占位符prepareRefresh();ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();// 设置 BeanFactory 的类加载器,添加几个 BeanPostProcessor,//手动注册几个特殊的 bean, 类加载器,Aware 接口初始化处理类, 事件监听器等等prepareBeanFactory(beanFacto.原创 2021-09-23 11:27:29 · 1471 阅读 · 0 评论 -
spring和nacos的加载机制
spring-cloud-context提供引导上下文、加密、刷新范围和环境端点等规范和实现,一起来看它的实现,SpringFactoriesLoader类是通过类加载器通过getResources()和getSystemResources()查找所有META-INF/spring.factories的文件,这里面的配置一般是springboot自动配置的配置类,进行初始化并缓存。Environment接口通过继承PropertyResolver包含了profiles和properties两个方面,原创 2021-09-17 18:01:40 · 667 阅读 · 0 评论 -
spring gateway的gatewayFilter和GlobalFilter,执行顺序
gateway有两种filter,第一种gatewayFilter就是在yml配置文件里定义的,比如discovery: locator: enabled: true filters: - StripPrefix=1这里的StripPrefix就是gatewayFilter,是在StripPrefixGatewayFilterFactory里定义的,这种filter我没有看到执行顺序,但是是在GlobalFilter之前执行的Gl原创 2021-09-13 09:52:19 · 3076 阅读 · 1 评论 -
springsecurity的认证鉴权,acl,oauth2.0
主要就是一些拦截器链,@PreAuthorize,@PreFilter,@PostAuthorize和@PostFilter认证AuthenticationManager基于列表的ProviderManager实现,每个处理器都有机会处理验证成功或失败AuthenticationProvider获取适配的处理器鉴权AccessDecisionManager基于投票的 AccessDecisionManager 实现,投票决策管理器AccessDecisionVoter基本..原创 2021-09-02 15:05:31 · 518 阅读 · 0 评论 -
springmvc关于404的异常处理
------------------------------分割线------------------------------------------今天看了下springmvc关于404处理的问题默认url的话其实springmvc会有很多MappingHandler进行适配(HandlerAdapter),像我们通常的RequestHandlerMappingHandler(通过Controller和RequestMapping注解定义的路径),这时候如果我们没有一个requestMapping原创 2021-08-30 11:41:54 · 2050 阅读 · 0 评论 -
springmvc 整合 shiro 无法访问控制器 404问题
--> 这是springmvc.xml的配置,applicationContext.xml的配置如下 <bean id="formAuthenticationFilter" class="org.apache.shiro.web.filter.authc.FormAuthenticationFilter转载 2018-01-09 09:34:28 · 4864 阅读 · 0 评论 -
spring 和 springmvc 容器关系 父子关系
笔记,一般项目都会用到spring和springmvc,然而这两个却不是在一个容器,众所周知,spring提供容器可以从容器里获取对象.spring和springmvc是父子容器关系,springmvc可以获取spring容器里的对象,反之则获取不到.现遇到两个实际情况,使用aop的时候我模拟切面类在service层,注入点在controller层,我spring只扫描了service层,原创 2018-01-08 18:25:00 · 599 阅读 · 0 评论 -
Spring AOP 实现原理----AspectJ与CGLIB介绍
简介: AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态转载 2018-01-08 17:29:33 · 468 阅读 · 0 评论 -
springmvc 视图解析器 原理 返回根据请求返回xml或者json
之前公司的项目能什么都不配置就实现自动返回xml或者json(浏览器直接打开连接返回xml,ajax提交返回json),今天自己搭的框架也想实现这个效果,总结如下:如果想实现什么都不配置需要导入以下两个jar com.fasterxml.jackson.core jackson-databind ${jackson.v原创 2018-01-08 14:23:03 · 3203 阅读 · 0 评论 -
spring事务 方法调用内部方法 事务不生效
@Autowired private ApplicationContext context;在类里加入上下文 @PostConstruct // 初始化方法 private void setSelf() { //从上下文获取代理对象(如果通过proxtSelf=this是不对的,this是目标对象) //此种方法不适合于prototype Bean,因为每次g原创 2017-10-19 16:38:12 · 6148 阅读 · 0 评论 -
springmvc @RestController restful风格的用法
RestController标注的类的方法自带response body原创 2017-04-17 22:39:19 · 1288 阅读 · 0 评论 -
spring 回滚事务 异常处理 手动回滚 公司通用处理方式
在service层try catch掉在catch里加入TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 手动回滚事务,返回自定义值给上层处理这是笔记,不多解释原创 2017-04-17 21:19:42 · 2333 阅读 · 0 评论 -
springmvc全局异常处理
最近使用shiro做个项目,也包括几个万精油框架spring、mybatis其实用springmvc来实现全局异常处理我在一起的学习demo中也用到了,今天因为有些地方不是那么清晰了,所以干脆写成博客,记录下来。用springmvc实现全局异常处理我知道的有两种方式:1、继承HandlerExceptionResolver实现个自定义的全局异常处理器,重写resolveExceptio原创 2016-09-27 16:20:12 · 821 阅读 · 0 评论