사용자 도구

사이트 도구


springframework:springboot

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
springframework:springboot [2018/08/29 19:48]
kwon37xi [Debug Mode]
springframework:springboot [2019/04/22 14:21]
kwon37xi [Server / Tomcat 설정]
줄 9: 줄 9:
   * [[springframework:springboot:json|SpringBoot and JSON]]   * [[springframework:springboot:json|SpringBoot and JSON]]
   * [[springframework:springboot:batch|SpringBoot와 SpringBatch]]   * [[springframework:springboot:batch|SpringBoot와 SpringBatch]]
 +  * [[springframework:springboot:springboot_admin|SpringBoot Admin]]
 +  * [[springframework:springboot:gradle|SpringBoot and Gradle]]
 +  * [[springframework:springboot:test|SpringBoot Test]]
 +  * [[springframework:springboot:springboot_cli|SpringBoot CLI]]
  
-===== Dependency Version Override ===== +===== @EnableAutoConfiguration ===== 
-의존 라이브러리의 버전을 다른 것으로 바꾸고자 한다면 property를 변경하면 된다+  * [[https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/EnableAutoConfiguration.html|@EnableAutoConfiguration]] 
-<code groovy+  * 특정 Auto Configuration 방지<code java
-// 하이버네이트 버전 +@EnableAutoConfiguration(exclude = { 
-ext['hibernate.version'] = '5.2.14.Final'+    DataSourceAutoConfiguration.class, 
 +    DataSourceTransactionManagerAutoConfiguration.class, 
 +    HibernateJpaAutoConfiguration.class})
 </code> </code>
- +  * [[https://www.baeldung.com/spring-boot-custom-auto-configuration|A Custom Auto-Configuration with Spring Boot Baeldung]]
-  * [[https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-dependencies/pom.xml|spring boot dependencies pom.xml]] 여기서 버전 프라퍼티 목록을 알 수 있다.+
  
 ===== JRebel SpringBoot / Gradle ===== ===== JRebel SpringBoot / Gradle =====
   * [[https://www.javacodegeeks.com/2018/02/jrebel-gradle-spring-boot-app.html|JRebel for a Gradle Spring Boot App | Java Code Geeks - 2018]]   * [[https://www.javacodegeeks.com/2018/02/jrebel-gradle-spring-boot-app.html|JRebel for a Gradle Spring Boot App | Java Code Geeks - 2018]]
- 
- 
  
 ===== DataSource ===== ===== DataSource =====
줄 36: 줄 39:
   * 위 예에서 설정값은 ''my.datasource.*''로 구성한다. [[java:database:hikaricp|HikariCP]] 등 다른 구현체를 사용할 수도 있다.   * 위 예에서 설정값은 ''my.datasource.*''로 구성한다. [[java:database:hikaricp|HikariCP]] 등 다른 구현체를 사용할 수도 있다.
  
-===== BootRun ===== +==== SpringApplicationRunListener ==== 
-==== Debug Mode ==== +  * [[https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/SpringApplicationRunListener.html|SpringApplicationRunListener]] 
-<code groovy+  * SpringBoot 로딩중 이벤트를 받아 처리한다. 
-bootRun + 
-    if (project.hasProperty("bootDebug")) { +===== SpringBoot WebMVC 정적 리소스(static resource) ===== 
-        jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"]+==== static resource 서빙 경로 ==== 
 + 
 +  * ''/src/main/META-INF/resources'' 
 +  * jar 애플리케이션을 실행한 디렉토리 하위의 ''public/'' 디렉토리 
 +  * ''WebMvcConfigurerAdapter.addResourceHandlers'' 오버라이드하여 직접 지정<code java
 +@Configuration 
 +public class StaticResourceConfig extends WebMvcConfigurerAdapter 
 +    @Override 
 +    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
 +        registry.addResourceHandler("/static/**") 
 +            .addResourceLocations("file:/var/www/html");
     }     }
 } }
- 
-// suspend=y는 JVM이 뜰 때 Remote Debugger가 접속될 때까지 기다린다. 
-// 실행 후 바로 종료하는 명령행 애플리케이션의 경우 무조건 y 
 </code> </code>
- +==== static resource 관련 프라퍼티 ==== 
-<code sh+<code> 
--PbootDebug 프라퍼티를 지정하면 디버그 모드로 뜬다+server.compression.enabled=true 
-./gradlew bootRun -PbootDebug+spring.resources.chain.cache=true 
 +server.compression.min-response-size=2048 
 +spring.resources.chain.enabled=true 
 +spring.resources.cache-period=3600
 </code> </code>
  
-==== Application Arguments ==== +===== Server / Tomcat 설정 ===== 
-  * [[https://www.baeldung.com/spring-boot-command-line-arguments|Command-line Arguments in Spring Boot | Baeldung]] +  * [[https://wordpress-264548-822440.cloudwaysapps.com/spring-boot-configure-tomcat|How to Configure Spring Boot Tomcat]] 
-<code groovy+<code> 
-bootRun { +server.address= # Network address to which the server should bind. 
-    if (project.hasProperty('args')) { +server.compression.enabled=false # Whether response compression is enabled. 
-        args project.args.split(',') +server.compression.excluded-user-agents= # Comma-separated list of user agents for which responses should not be compressed. 
-    +server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml # Comma-separated list of MIME types that should be compressed. 
-}+server.compression.min-response-size=2KB # Minimum "Content-Length" value that is required for compression to be performed. 
 +server.connection-timeout= # Time that connectors wait for another HTTP request before closing the connection. When not set, the connector's container-specific default is used. Use a value of -1 to indicate no (that is, an infinite) timeout. 
 +server.error.include-exception=false # Include the "exception" attribute. 
 +server.error.include-stacktrace=never # When to include a "stacktrace" attribute. 
 +server.error.path=/error # Path of the error controller. 
 +server.error.whitelabel.enabled=true # Whether to enable the default error page displayed in browsers in case of a server error. 
 +server.http2.enabled=false # Whether to enable HTTP/2 support, if the current environment supports it. 
 +server.max-http-header-size=8KB # Maximum size of the HTTP message header. 
 +server.port=8080 # Server HTTP port. 
 +server.server-header= # Value to use for the Server response header (if empty, no header is sent). 
 +server.use-forward-headers= # Whether X-Forwarded-* headers should be applied to the HttpRequest. 
 +server.servlet.context-parameters.*= # Servlet context init parameters. 
 +server.servlet.context-path= # Context path of the application. 
 +server.servlet.application-display-name=application # Display name of the application. 
 +server.servlet.jsp.class-name=org.apache.jasper.servlet.JspServlet # Class name of the servlet to use for JSPs. 
 +server.servlet.jsp.init-parameters.*= # Init parameters used to configure the JSP servlet. 
 +server.servlet.jsp.registered=true # Whether the JSP servlet is registered. 
 +server.servlet.session.cookie.comment= # Comment for the session cookie. 
 +server.servlet.session.cookie.domain= # Domain for the session cookie. 
 +server.servlet.session.cookie.http-only= # Whether to use "HttpOnly" cookies for session cookies. 
 +server.servlet.session.cookie.max-age= # Maximum age of the session cookie. If a duration suffix is not specified, seconds will be used. 
 +server.servlet.session.cookie.name= # Session cookie name. 
 +server.servlet.session.cookie.path= # Path of the session cookie. 
 +server.servlet.session.cookie.secure= # Whether to always mark the session cookie as secure. 
 +server.servlet.session.persistent=false # Whether to persist session data between restarts. 
 +server.servlet.session.store-dir= # Directory used to store session data. 
 +server.servlet.session.timeout=30m # Session timeout. If a duration suffix is not specified, seconds will be used. 
 +server.servlet.session.tracking-modes= # Session tracking modes. 
 +server.ssl.ciphers= # Supported SSL ciphers. 
 +server.ssl.client-auth= # Client authentication mode. 
 +server.ssl.enabled=true # Whether to enable SSL support. 
 +server.ssl.enabled-protocols= # Enabled SSL protocols. 
 +server.ssl.key-alias= # Alias that identifies the key in the key store. 
 +server.ssl.key-password= # Password used to access the key in the key store. 
 +server.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file)
 +server.ssl.key-store-password= # Password used to access the key store. 
 +server.ssl.key-store-provider= # Provider for the key store. 
 +server.ssl.key-store-type= # Type of the key store. 
 +server.ssl.protocol=TLS # SSL protocol to use. 
 +server.ssl.trust-store= # Trust store that holds SSL certificates. 
 +server.ssl.trust-store-password= # Password used to access the trust store. 
 +server.ssl.trust-store-provider= # Provider for the trust store. 
 +server.ssl.trust-store-type= # Type of the trust store. 
 +server.tomcat.accept-count=100 # Maximum queue length for incoming connection requests when all possible request processing threads are in use. 
 +server.tomcat.accesslog.buffered=true # Whether to buffer output such that it is flushed only periodically. 
 +server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be absolute or relative to the Tomcat base dir. 
 +server.tomcat.accesslog.enabled=false # Enable access log. 
 +server.tomcat.accesslog.file-date-format=.yyyy-MM-dd # Date format to place in the log file name. 
 +server.tomcat.accesslog.pattern=common # Format pattern for access logs. 
 +server.tomcat.accesslog.prefix=access_log # Log file name prefix. 
 +server.tomcat.accesslog.rename-on-rotate=false # Whether to defer inclusion of the date stamp in the file name until rotate time. 
 +server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for the IP address, Hostname, protocol, and port used for the request. 
 +server.tomcat.accesslog.rotate=true # Whether to enable access log rotation. 
 +server.tomcat.accesslog.suffix=.log # Log file name suffix. 
 +server.tomcat.additional-tld-skip-patterns= # Comma-separated list of additional patterns that match jars to ignore for TLD scanning. 
 +server.tomcat.background-processor-delay=10s # Delay between the invocation of backgroundProcess methods. If a duration suffix is not specified, seconds will be used. 
 +server.tomcat.basedir= # Tomcat base directory. If not specified, a temporary directory is used. 
 +server.tomcat.internal-proxies=10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\ 
 + 192\\.168\\.\\d{1,3}\\.\\d{1,3}|\\ 
 + 169\\.254\\.\\d{1,3}\\.\\d{1,3}|\\ 
 + 127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\ 
 + 172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\ 
 + 172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\ 
 + 172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3}\\ 
 + 0:0:0:0:0:0:0:1\\ 
 + ::1 # Regular expression that matches proxies that are to be trusted. 
 +server.tomcat.max-connections=10000 # Maximum number of connections that the server accepts and processes at any given time. 
 +server.tomcat.max-http-post-size=2MB # Maximum size of the HTTP post content. 
 +server.tomcat.max-swallow-size=2MB # Maximum amount of request body to swallow. 
 +server.tomcat.max-threads=200 # Maximum amount of worker threads. 
 +server.tomcat.min-spare-threads=10 # Minimum amount of worker threads. 
 +server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value. 
 +server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto"
 +server.tomcat.protocol-header-https-value=https # Value of the protocol header indicating whether the incoming request uses SSL. 
 +server.tomcat.redirect-context-root=true # Whether requests to the context root should be redirected by appending a / to the path. 
 +server.tomcat.remote-ip-header= # Name of the HTTP header from which the remote IP is extracted. For instance, `X-FORWARDED-FOR`. 
 +server.tomcat.resource.allow-caching=true # Whether static resource caching is permitted for this web application. 
 +server.tomcat.resource.cache-ttl= # Time-to-live of the static resource cache. 
 +server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI. 
 +server.tomcat.use-relative-redirects= # Whether HTTP 1.1 and later location headers generated by a call to sendRedirect will use relative or absolute redirects.
 </code> </code>
  
-위와 같이 설정하고, 아래와 같은 형태로 실행한다. 
- 
-<code sh> 
-./gradlew bootRun -Pargs=param1,param2,... 
-</code> 
 ===== 참고 ===== ===== 참고 =====
   * [[http://andromedarabbit.net/wp/spring-boot%ec%97%90%ec%84%9c-spring-framework-%eb%b2%84%ec%a0%84-%ec%a7%80%ec%a0%95%ed%95%98%ea%b8%b0/|Spring Boot에서 Spring Framework 버전 지정하기]]   * [[http://andromedarabbit.net/wp/spring-boot%ec%97%90%ec%84%9c-spring-framework-%eb%b2%84%ec%a0%84-%ec%a7%80%ec%a0%95%ed%95%98%ea%b8%b0/|Spring Boot에서 Spring Framework 버전 지정하기]]
springframework/springboot.txt · 마지막으로 수정됨: 2022/10/26 10:14 저자 kwon37xi