SpringBoot入门:SpringBoot项目属性配置
2种配置风格:
第一种:.properties风格
application.properties:
server.port=8081
server.servlet.context-path=/girl
第二种:.yml风格
application.yml
server:
port: 8082
servlet:
context-path: /girl
=================================
2种开发环境(dev开发环境和prod生产环境)
这里我们选择yml风格的配置:
我们创建3个yml配置:
application.yml【这是用来设置共同的配置,在这里面可以设置选择哪种环境】
application-dev.yml【这是开发环境配置】
application-prod.yml【这是生产环境配置】
application.yml共同属性:
- spring:
- profiles:
- active: dev
- # active: prod
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/dbgirl
- username: root
- password: 123456
- jpa:
- hibernate:
- ddl-auto: create
- show-sql: true
ddl-auto是属于:
hibernate里面的内容,
不止这一种属性:ddl-auto: create
还有:
create:
每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :
每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:
最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
validate :
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value=”none”。
特别注意:
如果设置成auto参数,那每次重启之后:数据库只有表结构!没有数据!
你可以尝试一下,在自动生成的表里面添加一些数据,重启之后刷新一下,全部都是null!之前的数据,全都被null覆盖了!
总结:
1.请慎重使用此参数,没必要就不要随便用。
2.如果发现数据库表丢失,请检查hibernate.auto的配置
============================================
dev开发环境:
application-dev.yml
- server:
- port: 8081
- girl:
- cupSize: B
- age: 18
prod生产环境:
application-prod.yml
- server:
- port: 8082
- girl:
- cupSize: F
- age: 20