地方门户类网站,百度手机点击排名工具,怎么建立织梦网站,江干建设局网站警告#xff1a;我不是Spring Boot的专家。 我发现很多事情对此非常有趣#xff0c;并且当然可以真正改善您的日常工作。 而且#xff0c;我对Spring Boot没有任何反对#xff0c;也没有开发或使用它的人。 但是我认为社区高估了该产品。 一年前#xff0c;我开始收到很多… 警告我不是Spring Boot的专家。 我发现很多事情对此非常有趣并且当然可以真正改善您的日常工作。 而且我对Spring Boot没有任何反对也没有开发或使用它的人。 但是我认为社区高估了该产品。 一年前我开始收到很多有关博客文章推文和有关Spring Boot信息的链接。 在他的网站上您可以阅读 通过Spring Boot可以轻松地创建独立的生产级的基于Spring的应用程序您可以“运行”它们。 看来这件事已经彻底改变了Java世界。 例如Spring Boot中的Spring MVC以及RESTful应用程序如下所示 Controller
EnableAutoConfiguration
public class SampleController {RequestMapping(/)ResponseBodyString home() {return Hello World!;}public static void main(String[] args) throws Exception {SpringApplication.run(SampleController.class, args);}
} 如您所见魔术发生在SpringApplication类内部该类启动了嵌入式Tomcat或Jetty并使用Spring东西注册了该控制器。 我知道令人印象深刻的几行内容就是您可以准备使用端点。 但是我不知道自己是否可以在JavaEE世界中使用相同的方法并且具有相同的底层和轻量级需求。 答案是绝对的。 我刚刚创建了一个非常小的原型/概念验证来证明这是可能的。 另外请不要误会我的意思除了自包含的应用程序例如监视执行器或工件依赖项解析以外Spring Boot还提供了更多其他功能。 但是这些东西仅仅是与其他技术的集成我的示例是在1小时半的时间内从零开始开发的因此不要指望可以使用Spring Boot。 首先要选择的是要使用的应用程序服务器在这种情况下毫无疑问此任务的最佳选择是Apache TomEE。 它是经过认证的Web配置文件Java EE服务器需要1秒钟启动时间并且可以使用默认的Java内存参数。 因此我在pom.xml文件中添加了tomee依赖项。 dependenciesdependencygroupIdorg.apache.openejb/groupIdartifactIdtomee-embedded/artifactIdversion1.7.1/version/dependencydependencygroupIdorg.apache.openejb/groupIdartifactIdopenejb-cxf-rs/artifactIdversion4.7.1/version/dependencydependencygroupIdorg.apache.openejb/groupIdartifactIdtomee-jaxrs/artifactIdversion1.7.1/version/dependencydependencygroupIdorg.jboss.shrinkwrap/groupIdartifactIdshrinkwrap-depchain/artifactIdversion1.2.2/versiontypepom/type/dependency/dependencies 在以前的嵌入式版本1.7.1中您只能部署文件中包含的应用程序不能像在Tomcat中一样以编程方式添加Servlet。 嵌入式tomee API在不久的将来可能会改变但是现在我们将使用ShrinkWrap以编程方式创建这些部署文件。 这是我们想要做的 import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;Stateless
Path(/sample)
public class SampleController {GETProduces(text/plain)public String sample() {return Hello World;}public static void main(String args[]) {TomEEApplication.run(HelloWorldServlet.class, SampleController.class);}
} 请注意我们仅导入JavaEE类其数量与Spring Boot一号相比减少了。 在短短2秒钟内即可使用该应用程序。 请记住您可以使用Web配置文件规范以及JAX-RS或JMS提供的任何功能。 因此例如您可以使用JPABean验证EJBCDI等。 而且TomEEApplication里面有什么 只有70行的课程会让您惊讶 public class TomEEApplication {private static void startAndDeploy(Archive archive) {Container container;try {Configuration configuration new Configuration();String tomeeDir Files.createTempDirectory(apache-tomee).toFile().getAbsolutePath();configuration.setDir(tomeeDir);configuration.setHttpPort(8080);container new Container();container.setup(configuration);final File app new File(Files.createTempDirectory(app).toFile().getAbsolutePath());app.deleteOnExit();File target new File(app, app.war);archive.as(ZipExporter.class).exportTo(target, true);container.start();container.deploy(app, target);container.await();} catch (Exception e) {throw new IllegalArgumentException(e);}registerShutdownHook(container);}private static void registerShutdownHook(final Container container) {Runtime.getRuntime().addShutdownHook(new Thread() {Overridepublic void run() {try {if(container ! null) {container.stop();}} catch (final Exception e) {throw new IllegalArgumentException(e);}}});}public static void run(Class ... clazzes) {run(ShrinkWrap.create(WebArchive.class).addClasses(clazzes));}public static void run(WebArchive archive) {startAndDeploy(archive);}
} 如您所见这实际上是一段简单的代码例如对应用程序的配置或名称进行了硬编码但请注意只需进行几处简单的更改就可以开始配置服务器应用程序等。 总而言之Spring Boot当然很酷但是通过非常简单的步骤您就可以在JavaEE世界中拥有相同的功能。 我们Apache TomEE贡献者将开始着手这一工作并扩大这一想法。 因此不要因为Spring Boot而低估Java EE。 翻译自: https://www.javacodegeeks.com/2014/09/one-jar-to-rule-them-all-apache-tomee-shrinkwrap-javaee-boot.html