当前位置:   article > 正文

第四节:如何使用注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

第四节:如何使用注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好,我是网创有方,上一节学习了如何理解Spring的两个特性IOC和AOP,这一节来基于上节的内容进行一个简单实践。这节要实现的效果是通过IOC容器获取到Bean,并且将Bean的属性显示打印出来。

第一步:创建pojo实体类student

新建一个pojo包,创建一个student实体类,通过右键Generate生成属性的getter和setter方法。

Student.java

  1. package cn.wcyf.wcai.pojo;
  2. public class Student {
  3. public String getName() {
  4. return name;
  5. }
  6. public void setName(String name) {
  7. this.name = name;
  8. }
  9. public int getAge() {
  10. return age;
  11. }
  12. public void setAge(int age) {
  13. this.age = age;
  14. }
  15. String name;//姓名
  16. int age;//年龄
  17. }

第二步:创建Appconfig容器配置类

新建一个config包,创建一个AppConfig.java类

新增代码如下:

  1. package cn.wcyf.wcai.config;
  2. import cn.wcyf.wcai.pojo.Student;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. @Configuration
  6. public class AppConfig {
  7. @Bean(name = "student")
  8. Student initStudent(){
  9. Student student = new Student();
  10. student.setAge(18);
  11. student.setName("小明");
  12. return student;
  13. }
  14. }

上面注意注解@Configuration表示这个是一个java配置类,后面会根据这个配置生成一个IOC容器。@Bean(name = "student") 前面的@Bean声明这个方法将会把bean装填到IOC容器中。

如果@Bean后面跟着name="student"意味着后面的生成的Student类对象是student,如果不声明的话,后面调用Student的类对象要使用initStudent。所以为了更方便,建议大家增加name。

第三步:创建IOC容器,加载bean到容器中

代码如下:

  1. @SpringBootApplication
  2. public class WcaiApplication {
  3. public static void main(String[] args) {
  4. var ctx = new AnnotationConfigApplicationContext(AppConfig.class);//创建一个IOC容器
  5. var student = ctx.getBean(Student.class);//从容器中获取一个Student bean
  6. System.out.println(student.getName());
  7. System.out.println(student.getAge());
  8. }
  9. @Controller
  10. public static class HelloController {
  11. @GetMapping("/test")
  12. public String test(HttpServletRequest request) {
  13. return "index";
  14. }
  15. }
  16. }

注意,这里使用了new AnnotationConfigApplicationContext(Appconfig.class)替代了默认的 SpringApplication.run(WcaiApplication.class, args);

第四步:运行看效果

参考:《深入浅出Spring-Boot-3.x》

         《SpringBoot企业级应用开发》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/769194
推荐阅读
相关标签
  

闽ICP备14008679号