2020/8/3springboot工厂特性之创建对象和注入语法以及构建自定义对象元数据

springboot=spring 项目管理工厂特性 +springmvc控制器

springboot的原理就是通过各种各样的包通过总的配置对别的注解扫描,因为别的注解也标识了别的内容,所以把所有的内容都包含进来了,但是你如果没有写注解,就扫描不到/

创建单个自定义对象

注解方式:@Component通用组件对象的创建注解

      @Service标识业务层组件对象创建 @Controller控制器对象创建 @Repository

在HelloServiceControllerImp写@service注解。

 

这三层,如果有这三层之外的组件对象,就用通用的@Component就可以。其实是都可以用这个注解的,但是spring官网给了就用,并且每个注解还是有区别的/。

 

 

创建多个对象(多个方法,因为这里每一个方法代表一个对象)

工厂中每一个方法代表一个对象的创建   Calendar

用的@Configuration 配置注解,用在类上,相当于曾经的spring.xml文件。

在这里里面写的方法上用@Bean

 

@Configuration在源代码中是不需要扫描的(多个)。@Component是需要扫描的。(单个)

 

@Scope标识这是个单例,可以用在多个对象中的其中一个,这样的话如果调用同一个此对象,出来的东西是一模一样的。

 

@Scope(”prototype“)这种的是出来得多例的,每次定义的对象拿出来是不同的。

 

springboot中注入方法

send注入和构造注入都是用的配置文件

另外一个就是注解注入:

 

 

1、使用@Value注解进行属性注入

  再配置文件里写

 

 

 

  再用@Value(”${name}").

 

遍历数组就是再.yml配置文件里面写(j记得要空一格)

各个元素用,隔开。

qqs.iter.是数据的遍历的快捷方式(idea)

注入基本类型: String +日期类型+八种基本类型   使用Value形式注入(就是和上面说的一样)

然后集合的话再配置文件里写法是一样的。再程序里写的是

strs.forEach(str->System.out.prinftln(str));

maps.forEach((k,v)-> System.out.prinftln("key:"+key+"value:"+value));List和Map都是用的lamda表达式遍历的

1、数组和基本类型还有日期类型的都是用的一致的格式
        .yml文件里面:
          qqs: abc,bcd,bbd
        程序里:
          Value("${qqs}")
         private String[] qqs;
出来的直接就是一个一个的数组格式的


2、 集合类型的
    2.1、List类型的
       .yml文件里面:
           strs: abc,bca,bbd
       程序里:
        @Value(”#{'${strs}'.spilt(',')}")  //如果不这样写的话,出来的的东西再一行,也就是说是一个元素,而不是三个元素。
        private List<String> strs;
    
    2.2、 Map类型的
       .yml文件里面:
            maps: "{key1:'value1', key2: 'value2'}"
       程序里:
          @Value("#{${maps}}")
           private Map<String, String> maps.//注入map
但是在对象里可以这样注入:

maps:
    abc:xiaohei
bcd:xiaobai


2、 直接注入对象
第一种:对对象里面的变量用配置文件一个一个注入到变量最后得到对象,和上面的一样
第二种:前置注入,就是把整个对象所有的变量一起赋值,然后直接注入到对象。如果写完了。
用@ConfigurationProperties(prefix=”user“)直接接把对象传过来了,在对象上。
用name和username会穿成windows的名字

构建自定义对象元数据
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

就是自己写的类里面的对象什么的都可以自动提示出来,在配置文件里也是的

 

posted @ 2020-08-03 18:09  一个想飞的菜鸟  阅读(734)  评论(0编辑  收藏  举报