我有一个大型(~15k LoC)JS 应用程序(即 NetSuite 应用程序),以旧式全全局方式编写。App由26个文件组成,它们之间的依赖关系完全不清楚。
目标是将应用程序优雅地重构为更小的模块。我所说的优雅是指不要长时间破坏\锁定应用程序,而是以较小的块进行重构,而在完成每个块后应用程序仍然可用。
我的一个想法是将我们现在拥有的所有 JS 文件连接到单文件包中。之后,一些代码可以提取到模块中。遗留代码可以开始导入它。模块和导入应该使用 webpack\whatever 进行转译,而遗留代码仍保持全全局样式。最后,所有这些都被打包到单个 JS 文件中并进行部署。
我的问题是
我尝试了 webpack,但没能从中得到我想要的东西。和不是选项export-loader,resolve-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) 我有一个JAX-WS,@WebServiceProvider并且希望同时支持SOAP 1.1和1.2协议.我SOAPMessage手动处理正确版本的响应的创建.我有WSDL描述1.1和1.2协议的绑定.但是服务端点一次只能支持任一版本.
我会很感激解决方案或指向一个文档的指针,它表明这是不可能的.
PS我正在使用WebSphere 7 app服务器,它与JAX-WS 2.0(基于Axis2)捆绑在一起
我无法理解如何在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的常见做法
想象一下我们有一个这样的控制器:
@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工作类似的方式为这个特定控制器实现一些常见的前\后处理?例如,我想在控制器中有一个方法,它在处理程序方法之前接收请求,但只对这个特定控制器的请求。
我知道RequestBodyAdvice和ResponseBodyAdvice接口,但想要控制器本地的东西。
作为使用示例 - 我想parameter在每个处理程序之前对公共变量进行一些验证。
constructor ×1
java ×1
javascript ×1
jax-ws ×1
legacy-code ×1
module ×1
scala ×1
soap ×1
spring ×1
spring-mvc ×1
super ×1
web-services ×1
websphere ×1