Administrator
发布于 2026-05-17 / 1 阅读
0

springboot_项目结构_数据库

# TOMCAT项目结构 !\[Springboot war\](https://z3.ax1x.com/2021/06/26/R8YDfg.png) \`\`\`xml index.jsp index1.jsp servlet1 net.test.TestServlet servlet1 \*.do \`\`\` # Springboot WAR项目结构 \`\`\`xml war org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat provided demo org.springframework.boot spring-boot-maven-plugin \`\`\` \`\`\`java @SpringBootApplication public class Main { //1.继承SpringBootServletInitializer public static void main(String\[\] args) { SpringApplication.run(Main.class,args); } } class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Main.class); } } \`\`\` 注意:使用tomcat10总是访问不到controller,不知道什么原因 war目录结构 1. META-INF 1. maven 2. MANIFEST.MF 3. war-tracker 2. org 1. springframework 1. boot 1. loader 1. xxx 2. yyy 3. zzz 3. WEB-INF 1. classes 1. com.example 1. Main.class 2. lib 3. lib-provide 4. layers.idx # Springboot JAR项目结构 ##### 外部配置文件位置 /home/project 1. xxx.jar 2. application.yml 3. config/application.yml ##### 目录结构 1. BOOT-INF 1. classes 1. com.example 1. Main.class 2. static 3. templates 4. application.yml 5. config/application.yml 2. lib 3. classpath,idx 4. layer.idx 2. META-INF:同上 3. org:同上 # Flyway \`\`\`xml org.flywaydb flyway-core 5.0.3 org.flywaydb flyway-maven-plugin 5.0.3 \`\`\` \`\`\`properties flyway.sql-migration-prefix=指定前缀 flyway.baseline-description对执行迁移时基准版本的描述. flyway.baseline-on-migrate当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移,默认false. flyway.baseline-version开始执行基准迁移时对现有的schema的版本打标签,默认值为1. flyway.check-location检查迁移脚本的位置是否存在,默认false. flyway.clean-on-validation-error当发现校验错误时是否自动调用clean,默认false. flyway.enabled是否开启flywary,默认true. flyway.encoding设置迁移时的编码,默认UTF-8. flyway.ignore-failed-future-migration当读取元数据表时是否忽略错误的迁移,默认false. flyway.init-sqls当初始化好连接时要执行的SQL. flyway.locations迁移脚本的位置,默认db/migration. flyway.out-of-order是否允许无序的迁移,默认false. flyway.password目标数据库的密码. flyway.placeholder-prefix设置每个placeholder的前缀,默认${. flyway.placeholder-replacementplaceholders是否要被替换,默认true. flyway.placeholder-suffix设置每个placeholder的后缀,默认}. flyway.placeholders.\[placeholder name\]设置placeholder的value flyway.schemas设定需要flywary迁移的schema,大小写敏感,默认为连接默认的schema. flyway.sql-migration-prefix迁移文件的前缀,默认为V. flyway.sql-migration-separator迁移脚本的文件名分隔符,默认__ flyway.sql-migration-suffix迁移脚本的后缀,默认为.sql flyway.tableflyway使用的元数据表名,默认为schema_version flyway.target迁移时使用的目标版本,默认为latest version flyway.url迁移时使用的JDBC URL,如果没有指定的话,将使用配置的主数据源 flyway.user迁移数据库的用户名 flyway.validate-on-migrate迁移时是否校验,默认为true. # 在classpath下新建/db/migration文件夹,并创建sql脚本文件: \`\`\` # liquibase \`\`\`xml org.liquibase liquibase-core \`\`\` \`\`\`java @Bean public SpringLiquibase liquibase(DataSource dataSource) { SpringLiquibase liquibase = new SpringLiquibase(); liquibase.setDataSource(dataSource); //指定changelog的位置,这里使用的一个master文件引用其他文件的方式 liquibase.setChangeLog("classpath:liquibase/master.xml"); liquibase.setContexts("development,test,production"); liquibase.setShouldRun(true); return liquibase; } \`\`\` \`\`\`xml # /resources/liquibase/master.xml \`\`\` \`\`\`xml # 数据库表生成 # /resources/liquibase/changelog-1.0.xml # 方法一引入sql # 方法二直接写 \`\`\`