SpringBoot的装配注入

主题是关于springboot装配注入

因为springboot是spring框架的进一步提取和封装,所以下面使用spring做对比。

## 首先是spring里的装配注入方式

  1. get、set注入
·		<bean id="user" class="com.yousian.pojo.User">
                <property name="username" value="zhangsan"></property>
                <property name="password" value="1234"></property>
          </bean>
id:一般是当前类名首字母小写
class:类的全路径
name:属性名
value:属性值

2.构造函数的注入

<bean id="user" class="com.yousian.pojo.User">
                <constructor-arg name="username" value="eric"></constructor-arg>
                <constructor-arg name="password" value="1234"></constructor-arg>
          </bean>

constructor-arg:通过构造函数注入需要用此标签,get、set方法的话用properties标签

p名称空间的注入 了解
springEL表达式的注入 了解
注解的方式注入: @Value @Resource @AutoWired

接下来就是springboot里的是如何注入的属性的勒?

这里要先说一下springboot的配置文件的格式了,分为yml和properties两种格式
yml类型的配置文件里面的属性是key: value形式的(冒号后面必须要有空格),相同缩进的key被视为同级
例如:

server:
  port: 2021
  servlet:
    path: /day02
user:
  username: zhangsan
  password: 123

list:  #集合
  - abc
  - def
  - ghl

这里server 、 user 、list就是同一级,port、servlet也是同一级

# properties类型的配置文件,设置属性时则为这样的

student.name=张三
student.age=10
student.gender=male
student.score=99

类名.属性名

这里我们用yml类型的配置文件

server:
  port: 2021
  servlet:
    path: /day02
user:
  username: zhangsan
  password: 123

list:  #集合
  - abc
  - def
  - ghl

person:
  name: Oscar
  age: 19
  boss: false
  birth: 2019/12/12
  maps: {k1: v1,k2: v2}
  lists:
    - eric
    - kobe
  dog:
    name: 大黄
    age: 3

string类型的属性直接写字符串即可,不用加单双引号
map类型的数据key: value中间的冒号也必须要空格
list需要加一个- 后面加个空格
对象属性需要在冒号后面加空格

写完配置文件,我们去创建相应的实体类

@Component //<bean id="person" class com.usian.pojo.Person>
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<String> lists;
    private Dog dog;
	get \  set 方法省略

这里使用了两个注解
@Component 相当于<bean id="person" class com.usian.pojo.Person>
也就是把类交给spring容器管理
@ConfigurationProperties(prefix = “person”)
这个注解是为了让我们可以方便的获取配置文件里的值
注意:必须要保证实体类属性和配置文件属性名称一样

@RestController
@RequestMapping("/springboot")
public class HelloSpringBoot {
    @Autowired
    Person person;
    @RequestMapping("/person")
    public Person person(){
        System.out.println(person);
        return person;
    }
}

接下来到controller里测试一下 (springboot环境在我的上一篇博客)

用 @Autowired注入person
运行@SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
即可测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值