回答
具有新功能(春季型材和@ConditionalOn)
附加JAR你能提供客戶支付額外的罐子,使新的功能。該jar可以使用spring引導自動配置功能加載(例如@ConditionalOnClass)。 你真的需要戰爭嗎?你可以使用可執行的jar代替(jar與捆綁的Tomcat http://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html#build-tool-plugins-maven-plugin)。
最終結果是相同的Web應用程序。但使用jar時,將另一個jar(附加功能)添加到classpath並且應用程序會將其拾取出來非常容易。請參閱http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html瞭解詳情。
OSGi
您還可以使用OSGi模塊啓用新功能。
但是,這不是真正的DRM,只是定製。一位客戶仍然可以複製來自其他客戶的功能特定的罐子。
你可以建立jar per-customer(jar中的硬件客戶細節)並對其進行混淆,但我認爲它仍然會非常容易中斷。 Java有非常容易的調試,並沒有防止調試,側載加載修補代碼等。
您可以用SecurityManager啓動您的應用程序(阻止一些敏感操作)https://docs.oracle.com/javase/tutorial/essential/environment/security.html但我認爲它仍然會很容易繞過。
雲模型
最後說明:您的部署模型是war(web應用程序)。你真的需要爲客戶提供這場戰爭嗎?也許你可以自己使用雲模型:主機軟件,只需要客戶訪問。特定功能只能爲部分(付費客戶)解鎖。示例:Github甚至Stackoverflow(Stackoverflow爲更多聲譽的用戶解鎖更多功能,而不是那些付費的用戶,但一般規則是相同的)。
- 1. JsonIgnore不適用於彈簧
- 2. PropertyConfigurator.configure不適用於彈簧
- 3. 用於獨立彈簧應用的彈簧啓動執行器
- 4. 用於獨立彈簧啓動應用的彈簧執行器
- 5. 彈簧安全不適用於我
- 6. @PreAuthorize不適用於彈簧安全4
- 7. 是否適用於高負載彈簧應用?
- 8. Javascript彈簧物理:將方向矢量應用於彈簧
- 9. 加載彈簧豆基於應用
- 10. 彈簧MVC處理對象應用於
- 11. 彈簧執行器可以用於非卷材彈簧啓動應用嗎?
- 12. 基於彈簧配置文件的彈簧引導應用程序屬性
- 13. 沒有彈簧的web應用程序的彈簧配置MVC
- 14. 爲彈簧引導應用
- 15. 開始彈簧3.0應用
- 16. J2EE彈簧小應用
- 17. 彈簧restdocs是不承認適用()
- 18. @WithUserDetails註解不適用於彈簧單元測試
- 19. 彈簧4 MVC地點更改,但JSP不適用於本
- 20. 彈簧法安全性不適用於我
- 21. 樂觀鎖定不適用於彈簧數據couchbase @version
- 22. CrossOrigin註釋不適用於彈簧安全性
- 23. CORS過濾器不適用於彈簧oauth /令牌
- 24. 彈簧數據JPA實體圖不適用於Spring Boot
- 25. 驗證和授權不適用於彈簧4.0
- 26. Bootstrap 3模式窗口不適用於彈簧mvc
- 27. 用於彈簧和休眠應用的逆向工程工具
- 28. 用於彈簧工具套裝的PPA
- 29. 用於sftp的彈簧集成
- 30. 用於大文件的彈簧集成