SpringBoot入门教程

时间:2019-10-05 23:08来源:编程技术
2、使用 beans.xml?xml version="1.0" encoding="UTF-8"?beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://w

2、使用

beans.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean ></bean></beans>

public class HelloService {}

@RunWith(SpringRunner.class)@SpringBootTestpublic class Springboot02ConfigApplicationTests { @Autowired private ApplicationContext ioc; @Test public void testHelloService() { boolean helloService = ioc.containsBean("helloService"); System.out.println(helloService); }}

false

@SpringBootApplication@ImportResource(locations = {"classpath:beans.xml"})public class Springboot02ConfigApplication { public static void main(String[] args) { SpringApplication.run(Springboot02ConfigApplication.class, args); }}

true

PS:因为我们将表面包车型大巴布署文件引入了,@ImportResource(locations = {"classpath:beans.xml"})

@ImportResource这么看的话没卵用,因为我们以往都没了配置文件了,所以引进什么啊?其实并否则,举例:dubbo依旧供给靠配置文件来布署bean的,那时候就需求此申明了。(小编明白dubbo也得以遵照注脚来配置,作者只是举个例证。),若只为了注入一个bean,完全能够运用Spring的@Bean注明。

  • QQ群【Java初学者学习调换群】:458430385

  • 微信大伙儿号

图片 1img

  • 天涯论坛号:编程界的小学生

Spring Boot提倡基于Java的安插。这两篇博文重要介绍springboot 一些常用的注释介绍

1、定义

将表面包车型地铁配置文件加载到程序中来,比方我们定义多少个beans.xml文本,里面配备了三个bean,私下认可景况下那么些bean是不会加载到Spring容器中来的。大家必要@ImportResource阐明将这么些布局文件加载进来。

v@Import

SpringBoot 的 @Import 用于将钦定的类实例注入之Spring IOC Container中。

package com.cnblogs.demo;public class Dog { }

package com.cnblogs.demo; public class Cat { }

在运转类中供给得到Dog和Cat对应的bean,须要用注脚@Import申明把Dog和Cat的bean注入到当下容器中。

package com.cnblogs.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Import; //@SpringBootApplication@ComponentScan/*把用到的资源导入到当前容器中*/@Import({Dog.class, Cat.class})public class App {     public static void main(String[] args) throws Exception {         ConfigurableApplicationContext context = SpringApplication.run(App.class, args);        System.out.println(context.getBean(Dog.class));        System.out.println(context.getBean(Cat.class));        context.close();    }}

2、使用

上一章节大家介绍了什么样从陈设文件里获得值,与JavaBean做映射。但是存在的难点是咱们是从主配置(application.yml)里读取的。假如全勤的配置都写到application里,那就乱套了。所以我们能够遵从不相同模块自定义差别的安插文件。

person.propertiesperson.lastName=李四person.age=25person.birth=2017/12/15person.boss=trueperson.maps.key1=value1person.maps.key2=value2person.lists=a,b,cperson.dog.name=dogperson.dog.age=2

@PropertySource(value = {"classpath:person.properties"})@ConfigurationProperties(prefix = "person")@Componentpublic class Person { private String lastName; private Integer age; private boolean isBoss; private Date birth; private Map<String, Object> maps; private List<Object> lists; private Dog dog; ...setter/getter/toString...}

如此一个解说(@PropertySource(value = {"classpath:person.properties"}))就足以消除不在主配置里读取,根据区别的功效模块划分出差异的计划文件。

v@ImportResource

Spring Boot里面未有Spring的配备文件,大家和好编排的安顿文件,也不可能自动识别;想让Spring的安排文件生效,加载进来;@ImportResource评释在二个配置类上.

@ImportResource(locations = {"classpath:applicationContext.xml"})@SpringBootApplicationpublic class SpringBootConfigApplication {    public static void main(String[] args) {        SpringApplication.run(SpringBootConfigApplication.class, args);    }}

1、定义

自定义配置文件名称,多用于配置文件与实业性质映射。

v补充

@Bean评释用在措施上,成效:将艺术的再次来到值增添到容器中;容器中那几个组件私下认可的id正是方式名。springboot不珍视使用安顿文件,推崇使用全配置格局开荒,怎么着定义一个布置类呢?在类名上加@Configuration标签标记那是一个配置类,方法上则用@Bean

作  者:请叫本身头头哥
出  处:
关于笔者:专心于基础平台的门类支付。如不寻常或提出,请多多赐教!
版权评释:本文版权归作者和新浪共有,招待转发,但未经小编同意必须保留此段评释,且在文章页面显著地方给出原著链接。
明知故犯证明:全数评价和私信都会在第有时间回复。也款待园子的大大们指正错误,共同升高。只怕直接私信笔者
支援博主:借让你以为小说对您有救助,能够点击小说右下角**临时间。您的慰勉是小编持之以恒原创和不断写作的最大引力!

v@PropertySource

自定义配置文件名称,多用于配置文件与实业性质映射。

person.propertiesperson.lastName=Jackperson.age=18person.birth=2018/12/9person.boss=trueperson.maps.key1=value1person.maps.key2=value2person.lists=a,b,cperson.dog.name=tomperson.dog.age=1

@PropertySource(value = {"classpath:person.properties"})@ConfigurationProperties(prefix = "person")@Componentpublic class Person {    private String lastName;    private Integer age;    private boolean isBoss;    private Date birth;    private Map<String, Object> maps;    private List<Object> lists;    private Dog dog;    ...setter/getter/toString...}

这么一个注明(@PropertySource(value = {"classpath:person.properties"}))就足以消除不在主配置里读取,依据分歧的功用模块划分出分化的陈设文件。

v@value

经过@Value能够将表面包车型大巴值动态注入到Bean中。

加多application.properties的性质,方便前边演示。

domain.name=cnblogs

    @Value("字符串1")    private String testName; // 注入普通字符串    @Value("#{systemProperties['os.name']}")    private String systemPropertiesName; // 注入操作系统属性    @Value("#{ T(java.lang.Math).random() * 100.0 }")    private double randomNumber; //注入表达式结果    @Value("${domain.name}")    private String domainName; // 注入application.properties的配置属性

作用如下:

图片 2

编辑:编程技术 本文来源:SpringBoot入门教程

关键词: