小编sco*_*rpp的帖子

如何将旧版 JS 应用程序迁移到模块

我有一个大型(~15k LoC)JS 应用程序(即 NetSuite 应用程序),以旧式全全局方式编写。App由26个文件组成,它们之间的依赖关系完全不清楚。

目标是将应用程序优雅地重构为更小的模块。我所说的优雅是指不要长时间破坏\锁定应用程序,而是以较小的块进行重构,而在完成每个块后应用程序仍然可用。

我的一个想法是将我们现在拥有的所有 JS 文件连接到单文件包中。之后,一些代码可以提取到模块中。遗留代码可以开始导入它。模块和导入应该使用 webpack\whatever 进行转译,而遗留代码仍保持全全局样式。最后,所有这些都被打包到单个 JS 文件中并进行部署。

我的问题是

  1. 也许有更好的方法吗?这听起来像是一个典型的问题
  2. 有没有可用的工具来支持我的方法?

我尝试了 webpack,但没能从中得到我想要的东西。和不是选项export-loaderresolve-loader因为需要导入\导出的方法\变量数量。

例子

现在代码看起来像

function someGlobalFunction() {
  ...
}

var myVar = 'something';
// and other 15k lines in 26 files like this
Run Code Online (Sandbox Code Playgroud)

我理想中想要实现的是

function define(...) { /* function to define a module */ }

function require(moduleName) { /* function to import a module */ }

// block with my refactored out module definitions

define('module1', function () {
  // extracted …
Run Code Online (Sandbox Code Playgroud)

javascript module legacy-code

8
推荐指数
1
解决办法
1187
查看次数

通过相同的JAX-WS服务支持SOAP 1.1和1.2

我有一个JAX-WS,@WebServiceProvider并且希望同时支持SOAP 1.1和1.2协议.我SOAPMessage手动处理正确版本的响应的创建.我有WSDL描述1.1和1.2协议的绑定.但是服务端点一次只能支持任一版本.

我会很感激解决方案或指向一个文档的指针,它表明这是不可能的.

PS我正在使用WebSphere 7 app服务器,它与JAX-WS 2.0(基于Axis2)捆绑在一起

websphere soap web-services jax-ws

5
推荐指数
1
解决办法
4422
查看次数

Scala重载了构造函数和超级

我无法理解如何在Java上开发类似于以下内容的Scala代码:

public abstract class A {
   protected A() { ... }
   protected A(int a) { ... }
}

public abstract class B {
   protected B() { super(); }
   protected B(int a) { super(a); }
}

public class C extends B {
   public C() { super(3); }
}
Run Code Online (Sandbox Code Playgroud)

虽然很清楚如何开发C类,但我无法获得如何接受B.帮助.

PS我正在尝试创建自己的基于wicket WebPage的BaseWebPage,这是Java的常见做法

constructor scala super constructor-overloading

4
推荐指数
1
解决办法
4455
查看次数

Spring MVC @Controller 拦截自己的请求

想象一下我们有一个这样的控制器:

@RestController
@RequestMapping("/{parameter}")
public class MyController {

    @ExceptionHandler(SomeException.class)
    public Object handleSomeException() { /* handle */ }

    @RequestMapping("/something")
    public Object handleSomething(@PathVariable("parameter") String parameter) {
        /* handle */
    }

    @RequestMapping("/somethingElse")
    public Object handleSomethingElse(@PathVariable("parameter") String parameter) {
        /* handle */
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,如何以与@ExceptionHandler工作类似的方式为这个特定控制器实现一些常见的前\后处理?例如,我想在控制器中有一个方法,它在处理程序方法之前接收请求,但只对这个特定控制器的请求。

我知道RequestBodyAdviceResponseBodyAdvice接口,但想要控制器本地的东西。

作为使用示例 - 我想parameter在每个处理程序之前对公共变量进行一些验证。

java spring spring-mvc spring-restcontroller

1
推荐指数
1
解决办法
4047
查看次数