目录
maven的常用命令
1.编译compile
2.测试test
3.打包package
4.删了target下的东西后,点clean清除
5.再按install 安装,目录就会重新出现
修改端口号
改端口号:main/resources/application.properties 写 server.port=8888
然后在main/java/那里运行项目名Application
运行成功:
properties与yaml的优先级
后缀是yaml的写法,键值之间是有空格的 (看port与9999之间的空格)
重启后,发现,默认加载的方式是以properties方式进行的.(这里涉及到properties与yaml的优先级)
把properties用#注释掉,就会用yaml里的配置了
注册bean类
1.写几个属性后,右击选 Generate 可以进行快速编写get set方法
2.快速生成构造方法 Generate -Constructor
3.toString方法同上
注册到容器:标志配置类->注册组件
1.新建包annoconfig
2.新建类Myconfig
3.注解@Configuration标明当前类是配置类
4.注册组件
idea与eclipse注册组件的区别:
eclipse的方式: 直接注解到对应的量
springboot更加快速的注册组件:使用前缀,通过自动装配,
前面已经创建好了 三个值
如果我们要注入,就通过配置来写(person就是前缀)
注:
这里新建一个额外的配置来弄Person类
在resources下新建person.properties配
开始配置:
1.标识属性资源的配置(告诉当前资源的位置) 导入注解@PropertySource()
2.配置属性注解 @ConfigurationProperties
3.编写测试类
4.使用jar包帮我们把带有@ConfigurationProperties注解项生成自己的配置原始数据文件
@Component标识为组件注册到容器中
个人理解的不同情况
1.application.properties有值的情况下
三个注解全开,返回new person , 显示application的值
三个注解全开,返回new person(1,"aa","密码") ,显示application的值 (new的person并没有被返回)
三个注解全关,返回new person,显示null
三个注解全关,返回new person(1,"aa","密码") ,显示new的person的值
2.application.properties没有值的情况下,自定义的person.properties有值
三个注解全开,返回new person , 显示person.properties的值
三个注解全开,返回new person(1,"aa","密码") ,显示person.properties的值 (new的person并没有被返回)
三个注解全关,返回new person,显示null
三个注解全关,返回new person(1,"aa","密码") ,显示new的person的值
3.application.properties和自定义的person.properties都没有值
三个注解全开,返回new person , 显示空
三个注解全开,返回new person(1,"aa","密码") ,显示 new的person的值
三个注解全关,返回new person,显示空
三个注解全关,返回new person(1,"aa","密码") ,显示new的person的值
-------------------------------------------
使用:取值
@Value("${person.id}")
注解只开(不用配置前缀)
@PropertySource(value = {"classpath:person.properties"})
@Component
返回一个new person
配置类有设置值
person.id=1
person.userName=你还
person.password=吃饭
测试类测试结果:
成功取出了配置类里的person.id
注意的点:需要再配置类配置 (下面的.yaml格式的)
spring:
main:
allow-bean-definition-overriding: true
.properties格式的
spring.main.allow-bean-definition-overriding=true
存图: