zoukankan      html  css  js  c++  java
  • 初学SpringBoot之一

    学习的时候参考的这篇教程,http://blog.csdn.net/lxhjh/article/details/51751847

    ---------------------------------------------------------------------------------------------------------------------------------------------

    主要发现了几个问题

    1.SpringBoot可以直接以run as java application形式启动,确实也省去了配置XML、给tomcat中添加工程的步骤,启动tomcat的过程这里也成了启动java application。

    2.SpringBoot在关闭eclipse时会自动释放tomcat 8080端口,不需要再手动关闭tomcat释放8080。

    3.发现main函数所在的类的注解为SpringBootApplication,而main函数中就一句话SpringApplication.run(SpringBootSampleHelloworldApplication.class, args),且需要    引入包为org.springframework.boot.SpringApplication及org.springframework.boot.autoconfigure.SpringBootApplication,猜测这里是直接将SpringBootApplication作    为一个组件放到SpringApplication中去运行,且因为SpringBootApplication是在autoconfigure包下,猜测这就是所谓的SpringBoot能够自动配置。

    4.发现SpringBoot运行后,再次修改controller中的逻辑貌似没什么用,比如修改对应路径下的输出内容,修改前后输出居然一样。。感觉真是像见了鬼。。,莫非是其    它地方出了问题,但是没有发现。。

    5.最后一点,发现controller所在的包貌似不用和SpringBoot所在的包一致,。。

    以上大多为猜测,具体SpringBoot的内容期待后续的学习。

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    这里记录一个遇到的端口问题:

    其实就是8080端口占用问题,

    问题场景:一开始由于想要测试SpringBoot和RestController的相对位置问题,错写了两个一模一样的SpringBoot,先前的已启动,后来启动的是另一个,提示端口占用,文章最后为consolo提示内容。

    解决办法:简单的可以直接到任务管理器关掉javaw.exe。这里发现管理员运行模式下的cmd输入netstat -abn可以查看所有连接的程序,非常神奇(果然是太菜。。)。

    consolo的输出

    (下图应为spring的字母图形,可能是编码原因,显示有问题,暂且不管,先往后走)
    . ____ _ __ _ _
    /\ / ___'_ __ _ _(_)_ __ __ _
    ( ( )\___ | '_ | '_| | '_ / _` |
    \/ ___)| |_)| | | | | || (_| | ) ) ) )
    ' |____| .__|_| |_|_| |_\__, | / / / /
    =========|_|==============|___/=/_/_/_/
    :: Spring Boot :: (v1.5.4.RELEASE)

    2017-06-24 18:37:53.878 INFO 3712 --- [ main] .e.SpringBootSampleHelloworldApplication : Starting SpringBootSampleHelloworldApplication on OQBNBM1JE2S28LI with PID 3712 (Z:ChromeDownloadsspring-boot-sample-helloworldspring-boot-sample-helloworld argetclasses started by Administrator in Z:ChromeDownloadsspring-boot-sample-helloworldspring-boot-sample-helloworld)
    2017-06-24 18:37:53.885 INFO 3712 --- [ main] .e.SpringBootSampleHelloworldApplication : No active profile set, falling back to default profiles: default
    2017-06-24 18:37:54.215 INFO 3712 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4f51b3e0: startup date [Sat Jun 24 18:37:54 CST 2017]; root of context hierarchy
    2017-06-24 18:37:59.653 INFO 3712 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
    2017-06-24 18:37:59.692 INFO 3712 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
    2017-06-24 18:37:59.695 INFO 3712 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.15
    2017-06-24 18:37:59.964 INFO 3712 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
    2017-06-24 18:37:59.965 INFO 3712 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 5765 ms
    2017-06-24 18:38:00.296 INFO 3712 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
    2017-06-24 18:38:00.307 INFO 3712 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
    2017-06-24 18:38:00.308 INFO 3712 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
    2017-06-24 18:38:00.309 INFO 3712 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
    2017-06-24 18:38:00.309 INFO 3712 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
    2017-06-24 18:38:01.106 INFO 3712 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4f51b3e0: startup date [Sat Jun 24 18:37:54 CST 2017]; root of context hierarchy
    2017-06-24 18:38:01.328 INFO 3712 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello/{name}]}" onto public java.lang.String com.example.HelloController.helloName(java.lang.String)
    2017-06-24 18:38:01.330 INFO 3712 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String com.example.HelloController.helloWorld()
    2017-06-24 18:38:01.335 INFO 3712 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
    2017-06-24 18:38:01.337 INFO 3712 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
    2017-06-24 18:38:01.446 INFO 3712 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2017-06-24 18:38:01.448 INFO 3712 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2017-06-24 18:38:01.586 INFO 3712 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2017-06-24 18:38:01.931 INFO 3712 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
    2017-06-24 18:38:02.190 ERROR 3712 --- [ main] o.a.coyote.http11.Http11NioProtocol : Failed to start end point associated with ProtocolHandler ["http-nio-8080"]

    java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_77]
    at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_77]
    at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_77]
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_77]
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_77]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:978) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:628) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1022) [tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) [tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:250) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:193) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) [spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at com.example.SpringBootSampleHelloworldApplication.main(SpringBootSampleHelloworldApplication.java:10) [classes/:na]

    2017-06-24 18:38:02.191 ERROR 3712 --- [ main] o.apache.catalina.core.StandardService : Failed to start connector [Connector[HTTP/1.1-8080]]

    org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8080]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:250) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:193) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) [spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.4.RELEASE.jar:1.5.4.RELEASE]
    at com.example.SpringBootSampleHelloworldApplication.main(SpringBootSampleHelloworldApplication.java:10) [classes/:na]
    Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat"; Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1029) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    ... 13 common frames omitted
    Caused by: java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_77]
    at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_77]
    at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_77]
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_77]
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_77]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:978) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:628) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1022) ~[tomcat-embed-core-8.5.15.jar:8.5.15]
    ... 14 common frames omitted

    2017-06-24 18:38:02.225 INFO 3712 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
    2017-06-24 18:38:02.281 INFO 3712 --- [ main] utoConfigurationReportLoggingInitializer :

    Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
    2017-06-24 18:38:02.328 ERROR 3712 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :

    ***************************
    APPLICATION FAILED TO START
    ***************************

    Description:

    The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.

    Action:

    Verify the connector's configuration, identify and stop any process that's listening on port 8080, or configure this application to listen on another port.

    2017-06-24 18:38:02.334 INFO 3712 --- [ main] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4f51b3e0: startup date [Sat Jun 24 18:37:54 CST 2017]; root of context hierarchy
    2017-06-24 18:38:02.345 INFO 3712 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown

    ----------------------------------------------------------------------------------------------------------------------

    好吧,这是我写的第一篇开发博客,写得罗里吧嗦的,但感觉还是挺好玩的,另外怎么感觉我总是写得语无伦次,满口胡言乱语呢。。不管了,期待后面的博文能写好点吧。

  • 相关阅读:
    Python快速入门魔力手册PDF高清完整版百度云盘免费下载|零基础学习python入门教程
    Python语言及其应用PDF高清完整版百度云盘免费下载|python基础教程PDF电子书推荐
    Python游戏编程快速上手(第四版)PDF高清完整版百度云盘免费下载|零基础入门学pythonPDF教程
    python学习手册(第4版)PDF高清完整版百度云盘免费下载|零基础学习python入门指导推荐教材
    超全的HTTP请求响应码详细解析
    Python袖珍指南第5版PDF高清完整版百度云盘免费下载|python基础教程菜鸟教程
    Python趣味编程:从入门到人工智能PDF高清完整版百度云盘免费下载|python3零基础入门学习教程
    Python程序设计(第3版)PDF高清完整版百度云盘免费下载|python基础编程入门学习教程
    Python编程初学者指南PDF高清完整版百度云盘免费下载|python基础教程电子书
    hadoop常见面试题
  • 原文地址:https://www.cnblogs.com/bj20170624/p/7074636.html
Copyright © 2011-2022 走看看