详解Springboot 注入装配到IOC容器方式
1、通过bean注解装配到IOC容器
创建装配的类,如下
package com.sboot.pr.bean; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 * 通过bean注解装配到IOC容器 */ public class BeanPOJO { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
通过bean注解装配BeanPOJO到IOC容器
package com.sboot.pr.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.sboot.pr.bean.BeanPOJO; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 * 配置类文件 */ @Configuration public class BeanConfig { /** * 通过bean注解装配BeanPOJO到IOC容器 * @return */ @Bean(name = "beanPOJO") public BeanPOJO initBeanPOJO() { BeanPOJO pojo = new BeanPOJO(); pojo.setId(1); pojo.setName("BeanPOJO"); pojo.setAge(29); return pojo; } }
把装配的BeanPOJO 注入
package com.sboot.pr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.sboot.pr.bean.BeanPOJO; import com.sboot.pr.bean.ComponentPOJO; import com.sboot.pr.bean.ComponentScanPOJO; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 */ @RestController public class TestController { @Autowired private BeanPOJO beanPoJO; /** * 获取通过Bean注解装配到IOC容器的对象 * @return */ @GetMapping("/boot/getBeanPOJO") public BeanPOJO getBeanPOJO() { return beanPoJO; } }
访问注入的BeanPOJO信息
http://localhost:1111/boot/getBeanPOJO
2、通过Component注解扫描装配bean到IOC容器
创建装配的类,如下
package com.sboot.pr.bean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 * 通过Component注解扫描注入bean到IOC容器 * 指定bean名称,默认首个字母小写 */ @Component("componentPOJO") public class ComponentPOJO { @Value("2") private int id; @Value("ComponentPOJO") private String name; @Value("29") private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
把装配的ComponentPOJO 注入
package com.sboot.pr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.sboot.pr.bean.BeanPOJO; import com.sboot.pr.bean.ComponentPOJO; import com.sboot.pr.bean.ComponentScanPOJO; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 */ @RestController public class TestController { @Autowired private ComponentPOJO componentPOJO; /** * 获取通过Component注解装配到IOC容器的对象 * @return */ @GetMapping("/boot/getComponentPOJO") public ComponentPOJO getComponentPOJO() { return componentPOJO; } }
访问注入的ComponentPOJO 信息
http://localhost:1111/boot/getComponentPOJO
3、通过ComponentScan注解扫描装配bean到IOC容器
创建装配的类,如下
package com.sboot.pr.bean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 * 通过ComponentScan注解扫描注入bean到IOC容器 * 可以指定策列,比如哪些包需要扫描、排除哪些bean被扫描 */ @Configuration @ComponentScan public class ComponentScanPOJO { @Value("3") private int id; @Value("ComponentScanPOJO") private String name; @Value("29") private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
把装配的ComponentScanPOJO 注入
package com.sboot.pr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.sboot.pr.bean.BeanPOJO; import com.sboot.pr.bean.ComponentPOJO; import com.sboot.pr.bean.ComponentScanPOJO; /** * @author ygb * @Mailbox 941201063@qq.com * @date 2021年10月28日 */ @RestController public class TestController { @Autowired private ComponentScanPOJO componentScanPOJO; /** * 获取通过Component注解装配到IOC容器的对象 * @return */ @GetMapping("/boot/getComponentScanPOJO") public ComponentScanPOJO getComponentScanPOJO() { return componentScanPOJO; } }
访问注入的ComponentScanPOJO信息
http://localhost:1111/boot/getComponentScanPOJO
到此这篇关于Springboot 注入装配到IOC容器方式的文章就介绍到这了,更多相关Springboot 注入IOC容器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)