当前位置: 首页 > news >正文

深圳品牌网站推广公司手机app网站开发

深圳品牌网站推广公司,手机app网站开发,中国建设基础设施总公司 网站,国外jquery网站获取bean 默认情况下,在Spring项目启动时,会把bean都创建好(但是还会受到作用域及延迟初始化的影响)放在IOC容器中,如果想主动获取这些bean,可以通过如下方式 根据name获取bean Object getBean&#xff08…

获取bean

  • 默认情况下,在Spring项目启动时,会把bean都创建好(但是还会受到作用域及延迟初始化的影响)放在IOC容器中,如果想主动获取这些bean,可以通过如下方式
    • 根据name获取bean
      • Object getBean(String name)
    • 根据类型获取bean
      • <T> T getBean(Class<T> requiredType)
    • 根据name以及类型获取bean
      • <T> T getBean(String name,Class<T> requiredType)

具体实现代码及运行结果如下

具体代码

  •  
        @AutowiredApplicationContext applicationContext;  // 自动注入IOC容器对象@Testpublic void GetBean() {// 根据bean的名称获取DeptController bean1 = (DeptController) applicationContext.getBean("deptController");System.out.println(bean1);// 根据bean的类型获取DeptController bean2 = applicationContext.getBean(DeptController.class);System.out.println(bean2);// 根据bean的名称以及类型获取DeptController bean3 = applicationContext.getBean("deptController", DeptController.class);System.out.println(bean3);}

运行结果

在SpringBoot项目中设置bean对象

在Spring Boot中,可以使用注解来定义和配置Bean。常用的注解包括:

  • @Component:用于标识一个普通的Bean类。
  • @Service:用于标识一个服务类,通常用于业务逻辑的处理。
  • @Repository:用于标识一个数据访问类,通常用于数据库操作。
  • @Controller:用于标识一个控制器类,通常用于处理HTTP请求。

除了以上常用的注解外,还有一些特殊用途的注解,如:

  • @Configuration:用于标识一个配置类,通常用于配置Bean的创建和依赖关系。
  • @Autowired:用于自动注入依赖的Bean。
  • @Value:用于注入配置属性的值。

通过使用这些注解,可以将普通的Java类转化为Spring Bean,使其由Spring容器进行管理。Spring容器会负责创建、初始化和销毁这些Bean,并处理它们之间的依赖关系。在应用程序中,可以通过注入Bean来使用其提供的功能和服务。

bean作用域

  • Spring支持5种作用域,后三种在web环境才生效
  • 作用域说明
    singleton容器内同名称的bean只有一个实例(单例)默认
    prototype每次使用该bean时会创建新的实例(非单例)
    request每个全球范围内会创建新的实例(web环境下,了解)
    session每个会话范围内会创建新的实例(web环境下,了解)
    application每个应用范围内会创建新的实例(web环境下,了解)
  • 可以通过@Scope注解来进行配置作用域

注意事项

  • 默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时,才会创建该bean对象)。

  • prototype的bean,每一次使用该bean时都会创建一个新的实例。

  • 实际开发过程中,绝大部分的bean是单例的,也就是说绝大部分bean不需要配置scope属性。

具体代码及效果

  • scope为默认值singleton
    •     @Testpublic void GetBean() {// 根据bean的名称获取for (int i = 1; i < 5; i++) {DeptController bean1 = (DeptController) applicationContext.getBean("deptController");System.out.println(bean1);}
      }
  • 运行结果(都是同一个bean对象)

  • scope为prototype
    •  
  • 运行结果(每一次都会创建一个新的实例对象)

第三方bean

  • 对于第三方的类,我们无法在其代码中加入注解来将其添加到IOC容器中去。
  • 如果要管理的bean来自第三方(不是自定义的),是无法使用@Component及其衍生注解来说明bean的,就需要用到@Bean注解,通过@Bean注解的name/value属性指定bean名称,如果未指定,默认是方法名

具体实现

  • 在SpringBoot项目的启动类中加上一个方法,在该方法中创建第三方类的对象并且返回该对象,并且在该方法上加入@Bean注解(但是这种方式不建议
    • public class TliasApplication {public static void main(String[] args) {SpringApplication.run(TliasApplication.class, args);}@Bean  // todo 将发放返回值交给IOC容器管理,称为IOC容器的bean对象public SAXReader saxReader() {return new SAXReader();}
      }
      
  • 若要管理第三方的bean对象,建议对这些bean进行集中分类配置,可以通过@Configuration注解声明一个配置类。当应用程序启动时,Spring Boot会自动扫描并加载所有带有特定注解的配置类
    • 具体实现如下
    • @Configuration  
      public class BeanConfig {@Bean  // todo 将发放返回值交给IOC容器管理,称为IOC容器的bean对象public SAXReader saxReader() {return new SAXReader();}
      }
  • 如果在配置第三方类时要进行依赖注入的话,就可以在创建的方法中设置要注入的对象类型及其名称,然后Spring容器会继续自动装配

    • 具体代码

      • @Configuration
        public class BeanConfig {@Bean  // todo 将发放返回值交给IOC容器管理,称为IOC容器的bean对象public SAXReader saxReader(DeptService deptService) {return new SAXReader();}
        }

注意事项

  • 通过@Bean注解的name/value属性可以声明bean的名称,如果不指定,默认bean的名称就是方法名
  • 如果第三方bean需要依赖其它的bean对象,直接在bean定义方法中设置形参即可,容器会根据类型自动装配、
  • 项目中自定义的,使用@Component及其衍生注解
  • 项目中第三方引入的,使用@Bean注解
http://www.yayakq.cn/news/830180/

相关文章:

  • 北方外贸网站建设高端网站定制商
  • 2018网站建设行业整屏网站模板
  • 东营免费网站制作WordPress站内搜索代码
  • 宁波网站推广运营男女做暖暖的视频试看网站
  • 网站设计步骤国内做的比较大的外贸电商网站
  • 单位加强网站建设电商网站首页开发
  • 1m带宽做网站速度怎么样自己做网站需要学什么
  • 网站建设情况怎么写网站开发都需要学什么
  • 四平市网站建设中冶建设网站
  • 什么是网站快照黑龙江省公开招标信息网
  • 大连网建科技杭州市优化服务
  • 设计建设网站四川住房和城乡建设厅网站三类人员
  • 时尚杂志排版设计潍坊网站优化培训
  • 搜索网站做推广如何查看网站跳出率
  • 网站建设公司厦门有哪些seo排名
  • 网站制作应用设计类参考网站推荐
  • 网站登录和权限怎么做html模板网站模板下载
  • 网站百度建设腾讯云电商网站建设
  • 沧州高端网站建设公司加速器怎么加速网页
  • 免费做元宵节卡片的网站怎么制作图片文件夹
  • 网站建设 镇江丹阳我想克隆个网站 怎么做
  • 南山建网站公司建设厅网站平顶山
  • 建湖哪家专业做网站中国建设银行网上商城官网
  • 网站设计建设服务企业邮箱正确的写法
  • 网站设计风格说明舆情网站直接打开怎么弄
  • 网站结构分类中国建筑培训网
  • 绵阳网站搜索排名域名论坛
  • 网站建设推广唯心cidun8没有网站也可以做cpa
  • 网网站设计百度公司地址
  • dw个人网站制作抚顺网站开发招聘