zJiaC

最难的是坚持,最怕的却是习惯.


  • 首页

  • 标签15

  • 分类13

  • 归档14

日常经验备忘录

发表于 2018-03-13 分类于 日常

记录个人常用的命令行指令、常用工具等:

阅读全文 »

springmvc出现事务注解无效

发表于 2017-12-01 分类于 Java , Spring mvc

旧项目使用的是spring+mvc,通过的是xml来配置。
期间出现了一个问题,事务注解无效.
通过排查发现<context:component-scan 重复扫描了两次。
还是新项目使用spring boot注入方式比较清晰。

解决spring boot项目多个类implements于同一个接口类,使用注解需要多个@Qualifier

发表于 2017-10-26 更新于 2019-04-02 分类于 Java , Spring boot , Quartz
  • 业务场景
    搭建DI系统定时任务调度管理使用的是Quartz。

    首先通过一个主定时任务去触发其它任务的调度处理。最终是触发BaseTask的execute方法。BaseTask继承Job。

    然后execute方法里通过ThirdBusinessFactory工厂类去获取相应参数获取IThirdBll接口的实例。
  • 问题
    因为Spring boot一般都是通过@Autowired去注入,从而实例然后调用,如果直接通过New实例化则里面再通过@Autowired注解会有问题。

    但是如果在ThirdBusinessFactory。每个实例都写成如下将会是越来越多:

    1
    2
    3
    @Qualifier("A")
    @Autowired
    private IThirdBll A;
  • 解决

    1
    2
    @Autowired
    private List<Itest> testList;

    先将全部实例注解进去,再通过遍历testList寻找相应的实例。可以自定义个注解例如 TaskHandler,然后根据如下获取并加以判断。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @Component
    public @interface TaskHandler {
    String value() default "";
    String customer() default "";
    String description() default "";
    }
    TaskHandler annotation = taskHandlerClass.getAnnotation(TaskHandler.class)

解决Spring boot项目quartz的job没法使用注解方式实例化对象

发表于 2017-10-26 分类于 Java , Spring boot

使用自定义Job Factory,用于Spring注入

阅读全文 »

Spring boot项目出现跨域问题

发表于 2017-08-22 分类于 Java , Spring

Spring boot项目出现跨域问题

1
2
3
4
5
6
7
8
9
10
11
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("*")
.allowedOrigins("*");
}
}

这是配置跨域的一种方法,但出现了一种情况,定义的拦截器HandlerInterceptorAdapter preHandle方法抛出的错会有跨域问题。

解决办法

  • SpringMVC开启CORS支持
  • [SpringMVC 与权限拦截器冲突导致的Cors跨域设置失效问题] (https://segmentfault.com/a/1190000010348077)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("*")
.allowedOrigins("*");
}
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
123
zJiaC

zJiaC

14 日志
12 分类
15 标签
GitHub 唱吧
© 2020 zJiaC
由 Hexo 强力驱动 v3.3.1
|
主题 – NexT.Pisces v7.2.0
0%