中山建设厅网站首页,微信商城平台,百度指数有什么参考意义,广发证券 网站谁做的目录
1、pom.xml文件配置说明
2、SpringBoot项目结构说明
3、入门案例关键配置说明 #x1f308; 前面我们学习了SpringBoot快速入门案例#xff0c;本节我们通过POM文件和项目结构分析两部分内容了解下关于SpringBoot的一些配置说明#xff0c;以便全面了解SpringBoot项…目录
1、pom.xml文件配置说明
2、SpringBoot项目结构说明
3、入门案例关键配置说明 前面我们学习了SpringBoot快速入门案例本节我们通过POM文件和项目结构分析两部分内容了解下关于SpringBoot的一些配置说明以便全面了解SpringBoot项目结构组成及依赖技术栈。 1、pom.xml文件配置说明
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!--引入SpringBoot Parent依赖--parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.7/versionrelativePath/ !-- lookup parent from repository --/parent!--当前项目的GAV坐标--groupIdcom.xintu.demo/groupIdartifactIdspringboot/artifactIdversion0.0.1-SNAPSHOT/version!--maven项目名称可以删除--nameSpringBootCase/name!--maven项目描述可以删除--descriptionDemo project for Spring Boot/description!--maven属性配置可以在其它地方通过${}方式进行引用--propertiesjava.version11/java.version/propertiesdependencies!--SpringBoot框架web项目起步依赖通过该依赖自动关联其它依赖不需要我们一个一个去添加了--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--SpringBoot框架的测试起步依赖例如junit测试如果不需要的话可以删除--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildplugins!--SpringBoot提供的打包编译等插件--plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project2、SpringBoot项目结构说明 1) mvnw|mvnw.cmd文件 这两个脚本分别对应的是linux和windows环境可执行maven相关的命令通常使用比较少。
2) gitignore文件 使用版本控制工具git的时候设置一些忽略提交的内容。这样可以避免很多无效文件提交到远程仓库。如class文件、.idea文件内容等。
3static|templates文件夹 涉及到页面或模板技术都会存放该目录下比如html页面、JS脚本、CSS样式以及Thymeleaf等。
4application.properties(默认生成) | application.yml手动添加 SpringBoot的配置文件很多集成的配置都可以在该文件中进行配置。例如服务端口号、应用名称、数据库(Redis、ES、MySQL)连接信息、MyBatis配置、Rabbit MQ等。
5SpringbootApplication.java 该类是SpringBoot程序执行的入口执行该程序中的main方法SpringBoot就启动了。 3、入门案例关键配置说明
1Spring Boot的父级依赖spring-boot-starter-parent配置之后当前的项目就是Spring Boot项目。
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.7/versionrelativePath/ !-- lookup parent from repository --
/parent
2spring-boot-starter-parent是一个Springboot的父级依赖开发SpringBoot程序都需要继承该父级项目它用来提供相关的Maven默认依赖使用它之后常用的jar包依赖可以省去version配置。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!--省略版本号--
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope!--省略版本号--
/dependency
3Spring Boot提供了哪些默认jar包的依赖可查看该父级依赖的pom文件。大约有200多个依赖包从中我们可以了解SpringBoot融合了哪些技术栈便于我们全面了解SpringBoot这门技术。
!--整体了解SpringBoot所使用的技术栈--
propertiesactivemq.version5.16.5/activemq.versionantlr2.version2.7.7/antlr2.versionappengine-sdk.version1.9.98/appengine-sdk.versionartemis.version2.19.1/artemis.versionaspectj.version1.9.7/aspectj.versionassertj.version3.22.0/assertj.versionatomikos.version4.0.6/atomikos.versionawaitility.version4.2.0/awaitility.versionbuild-helper-maven-plugin.version3.3.0/build-helper-maven-plugin.versionbyte-buddy.version1.12.20/byte-buddy.versioncache2k.version2.6.1.Final/cache2k.versioncaffeine.version2.9.3/caffeine.versioncassandra-driver.version4.14.1/cassandra-driver.versionclassmate.version1.5.1/classmate.versioncommons-codec.version1.15/commons-codec.versioncommons-dbcp2.version2.9.0/commons-dbcp2.versioncommons-lang3.version3.12.0/commons-lang3.versioncommons-pool.version1.6/commons-pool.versioncommons-pool2.version2.11.1/commons-pool2.versioncouchbase-client.version3.3.4/couchbase-client.versiondb2-jdbc.version11.5.7.0/db2-jdbc.versiondependency-management-plugin.version1.0.15.RELEASE/dependency-management-plugin.versionderby.version10.14.2.0/derby.versiondropwizard-metrics.version4.2.14/dropwizard-metrics.versionehcache.version2.10.9.2/ehcache.versionehcache3.version3.10.8/ehcache3.versionelasticsearch.version7.17.8/elasticsearch.versionembedded-mongo.version3.4.11/embedded-mongo.versionflyway.version8.5.13/flyway.versionfreemarker.version2.3.31/freemarker.versiongit-commit-id-plugin.version4.9.10/git-commit-id-plugin.versionglassfish-el.version3.0.4/glassfish-el.versionglassfish-jaxb.version2.3.7/glassfish-jaxb.versionglassfish-jstl.version1.2.6/glassfish-jstl.versiongraphql-java.version18.3/graphql-java.versiongroovy.version3.0.13/groovy.versiongson.version2.9.1/gson.versionh2.version2.1.214/h2.versionhamcrest.version2.2/hamcrest.versionhazelcast.version5.1.5/hazelcast.versionhazelcast-hibernate5.version2.2.1/hazelcast-hibernate5.versionhibernate.version5.6.14.Final/hibernate.versionhibernate-validator.version6.2.5.Final/hibernate-validator.versionhikaricp.version4.0.3/hikaricp.versionhsqldb.version2.5.2/hsqldb.versionhtmlunit.version2.60.0/htmlunit.versionhttpasyncclient.version4.1.5/httpasyncclient.versionhttpclient.version4.5.14/httpclient.versionhttpclient5.version5.1.4/httpclient5.versionhttpcore.version4.4.16/httpcore.versionhttpcore5.version5.1.5/httpcore5.versioninfinispan.version13.0.14.Final/infinispan.versioninfluxdb-java.version2.22/influxdb-java.versionjackson-bom.version2.13.4.20221013/jackson-bom.versionjakarta-activation.version1.2.2/jakarta-activation.versionjakarta-annotation.version1.3.5/jakarta-annotation.versionjakarta-jms.version2.0.3/jakarta-jms.versionjakarta-json.version1.1.6/jakarta-json.versionjakarta-json-bind.version1.0.2/jakarta-json-bind.versionjakarta-mail.version1.6.7/jakarta-mail.versionjakarta-management.version1.1.4/jakarta-management.versionjakarta-persistence.version2.2.3/jakarta-persistence.versionjakarta-servlet.version4.0.4/jakarta-servlet.versionjakarta-servlet-jsp-jstl.version1.2.7/jakarta-servlet-jsp-jstl.versionjakarta-transaction.version1.3.3/jakarta-transaction.versionjakarta-validation.version2.0.2/jakarta-validation.versionjakarta-websocket.version1.1.2/jakarta-websocket.versionjakarta-ws-rs.version2.1.6/jakarta-ws-rs.versionjakarta-xml-bind.version2.3.3/jakarta-xml-bind.versionjakarta-xml-soap.version1.4.2/jakarta-xml-soap.versionjakarta-xml-ws.version2.3.3/jakarta-xml-ws.versionjanino.version3.1.9/janino.versionjavax-activation.version1.2.0/javax-activation.versionjavax-annotation.version1.3.2/javax-annotation.versionjavax-cache.version1.1.1/javax-cache.versionjavax-jaxb.version2.3.1/javax-jaxb.versionjavax-jaxws.version2.3.1/javax-jaxws.versionjavax-jms.version2.0.1/javax-jms.versionjavax-json.version1.1.4/javax-json.versionjavax-jsonb.version1.0/javax-jsonb.versionjavax-mail.version1.6.2/javax-mail.versionjavax-money.version1.1/javax-money.versionjavax-persistence.version2.2/javax-persistence.versionjavax-transaction.version1.3/javax-transaction.versionjavax-validation.version2.0.1.Final/javax-validation.versionjavax-websocket.version1.1/javax-websocket.versionjaxen.version1.2.0/jaxen.versionjaybird.version4.0.8.java8/jaybird.versionjboss-logging.version3.4.3.Final/jboss-logging.versionjdom2.version2.0.6.1/jdom2.versionjedis.version3.8.0/jedis.versionjersey.version2.35/jersey.versionjetty-el.version9.0.52/jetty-el.versionjetty-jsp.version2.2.0.v201112011158/jetty-jsp.versionjetty-reactive-httpclient.version1.1.13/jetty-reactive-httpclient.versionjetty.version9.4.50.v20221201/jetty.versionjmustache.version1.15/jmustache.versionjohnzon.version1.2.19/johnzon.versionjolokia.version1.7.1/jolokia.versionjooq.version3.14.16/jooq.versionjson-path.version2.7.0/json-path.versionjson-smart.version2.4.8/json-smart.versionjsonassert.version1.5.1/jsonassert.versionjstl.version1.2/jstl.versionjtds.version1.3.1/jtds.versionjunit.version4.13.2/junit.versionjunit-jupiter.version5.8.2/junit-jupiter.versionkafka.version3.1.2/kafka.versionkotlin.version1.6.21/kotlin.versionkotlin-coroutines.version1.6.4/kotlin-coroutines.versionlettuce.version6.1.10.RELEASE/lettuce.versionliquibase.version4.9.1/liquibase.versionlog4j2.version2.17.2/log4j2.versionlogback.version1.2.11/logback.versionlombok.version1.18.24/lombok.versionmariadb.version3.0.9/mariadb.versionmaven-antrun-plugin.version3.0.0/maven-antrun-plugin.versionmaven-assembly-plugin.version3.3.0/maven-assembly-plugin.versionmaven-clean-plugin.version3.2.0/maven-clean-plugin.versionmaven-compiler-plugin.version3.10.1/maven-compiler-plugin.versionmaven-dependency-plugin.version3.3.0/maven-dependency-plugin.versionmaven-deploy-plugin.version2.8.2/maven-deploy-plugin.versionmaven-enforcer-plugin.version3.0.0/maven-enforcer-plugin.versionmaven-failsafe-plugin.version2.22.2/maven-failsafe-plugin.versionmaven-help-plugin.version3.2.0/maven-help-plugin.versionmaven-install-plugin.version2.5.2/maven-install-plugin.versionmaven-invoker-plugin.version3.2.2/maven-invoker-plugin.versionmaven-jar-plugin.version3.2.2/maven-jar-plugin.versionmaven-javadoc-plugin.version3.4.1/maven-javadoc-plugin.versionmaven-resources-plugin.version3.2.0/maven-resources-plugin.versionmaven-shade-plugin.version3.3.0/maven-shade-plugin.versionmaven-source-plugin.version3.2.1/maven-source-plugin.versionmaven-surefire-plugin.version2.22.2/maven-surefire-plugin.versionmaven-war-plugin.version3.3.2/maven-war-plugin.versionmicrometer.version1.9.6/micrometer.versionmockito.version4.5.1/mockito.versionmongodb.version4.6.1/mongodb.versionmssql-jdbc.version10.2.2.jre8/mssql-jdbc.versionmysql.version8.0.31/mysql.versionnekohtml.version1.9.22/nekohtml.versionneo4j-java-driver.version4.4.11/neo4j-java-driver.versionnetty.version4.1.86.Final/netty.versionokhttp.version4.9.3/okhttp.versionoracle-database.version21.5.0.0/oracle-database.versionpooled-jms.version1.2.4/pooled-jms.versionpostgresql.version42.3.8/postgresql.versionprometheus-client.version0.15.0/prometheus-client.versionquartz.version2.3.2/quartz.versionquerydsl.version5.0.0/querydsl.versionr2dbc-bom.versionBorca-SR2/r2dbc-bom.versionrabbit-amqp-client.version5.14.2/rabbit-amqp-client.versionrabbit-stream-client.version0.5.0/rabbit-stream-client.versionreactive-streams.version1.0.4/reactive-streams.versionreactor-bom.version2020.0.26/reactor-bom.versionrest-assured.version4.5.1/rest-assured.versionrsocket.version1.1.3/rsocket.versionrxjava.version1.3.8/rxjava.versionrxjava-adapter.version1.2.1/rxjava-adapter.versionrxjava2.version2.2.21/rxjava2.versionsaaj-impl.version1.5.3/saaj-impl.versionselenium.version4.1.4/selenium.versionselenium-htmlunit.version3.61.0/selenium-htmlunit.versionsendgrid.version4.9.3/sendgrid.versionservlet-api.version4.0.1/servlet-api.versionslf4j.version1.7.36/slf4j.versionsnakeyaml.version1.30/snakeyaml.versionsolr.version8.11.2/solr.versionspring-amqp.version2.4.8/spring-amqp.versionspring-batch.version4.3.7/spring-batch.versionspring-data-bom.version2021.2.6/spring-data-bom.versionspring-framework.version5.3.24/spring-framework.versionspring-graphql.version1.0.3/spring-graphql.versionspring-hateoas.version1.5.2/spring-hateoas.versionspring-integration.version5.5.16/spring-integration.versionspring-kafka.version2.8.11/spring-kafka.versionspring-ldap.version2.4.1/spring-ldap.versionspring-restdocs.version2.0.7.RELEASE/spring-restdocs.versionspring-retry.version1.3.4/spring-retry.versionspring-security.version5.7.6/spring-security.versionspring-session-bom.version2021.2.0/spring-session-bom.versionspring-ws.version3.1.4/spring-ws.versionsqlite-jdbc.version3.36.0.3/sqlite-jdbc.versionsun-mail.version1.6.7/sun-mail.versionthymeleaf.version3.0.15.RELEASE/thymeleaf.versionthymeleaf-extras-data-attribute.version2.0.1/thymeleaf-extras-data-attribute.versionthymeleaf-extras-java8time.version3.0.4.RELEASE/thymeleaf-extras-java8time.versionthymeleaf-extras-springsecurity.version3.0.5.RELEASE/thymeleaf-extras-springsecurity.versionthymeleaf-layout-dialect.version3.0.0/thymeleaf-layout-dialect.versiontomcat.version9.0.70/tomcat.versionunboundid-ldapsdk.version6.0.7/unboundid-ldapsdk.versionundertow.version2.2.22.Final/undertow.versionversions-maven-plugin.version2.10.0/versions-maven-plugin.versionwebjars-locator-core.version0.50/webjars-locator-core.versionwsdl4j.version1.6.3/wsdl4j.versionxml-maven-plugin.version1.0.2/xml-maven-plugin.versionxmlunit2.version2.9.0/xmlunit2.version/properties 4如果在项目中不想使用某个默认依赖版本可通过修改pom.xml文件的单独依赖配置覆盖即可比如需要用Spring版本3.x 覆盖2.x。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion3.x版本号/version
/dependency
5SpringBootApplication注解属于Spring Boot项目的最核心注解主要作用开启Spring自动配置。如果在启动类上去掉该注解那么就不会启动SpringBoot程序。
package com.xintu.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;RestController
SpringBootApplication
public class SpringbootApplication {//...
}6main方法是一个标准的Java程序的main方法主要作用是作为项目启动运行的入口。
package com.xintu.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;RestController
SpringBootApplication
public class SpringbootApplication {public static void main(String[] args) {SpringApplication.run(SpringbootApplication.class, args);}//...
}7RestController 依然是我们之前的Spring MVC这个注解类内部包含了Controller 和 ResponseBody注解简化了原来Spring的配置方式。
package com.xintu.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;RestController
SpringBootApplication
public class SpringbootApplication {public static void main(String[] args) {SpringApplication.run(SpringbootApplication.class, args);}GetMapping(/hello)public String hello(RequestParam(value name, defaultValue World) String name) {return String.format(欢迎 %s 来到a href\http://www.35xintu.com\35新途/a, name);}}我们看下RestController源码
package org.springframework.web.bind.annotation;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Controller;Target({ElementType.TYPE})
Retention(RetentionPolicy.RUNTIME)
Documented
Controller //原Spring配置
ResponseBody //原Spring配置
public interface RestController {AliasFor(annotation Controller.class)String value() default ;
}其内部引入了Controller 和 ResponseBody这两个注解。
下一篇将详细介绍关于SpringBoot核心配置便于我们进一步深入了解Springboot可管理的配置化能力。