zoukankan      html  css  js  c++  java
  • spring boot的对象注入

    1 需求

    现在我们的项目中需要引入一个java类库,我想要很方便的使用该类库中的一个类,并且我想要创建这个类的一个单例对象。然后可以很方便的在各个模块中用@AutoWired进行对象注入。

    比如一个配置文件,我在一个地方创建Configuration对象,读取配置文件中的配置,然后在各个模块中使用该对象。

    2 需求分析

    这个需求涉及到两个问题,

    一个是单例对象的创建;另外一个是单例对象的引用。因为,你要用一个对象,你首先得创建它。创建一个对象在Spring中有固定的模式,在定义类的时候使用@Component注解,@Component默认是单例的。这样spring framework在进行component scan的时候就会创建这个对象。用的时候很简单,只需要@Autowired就可以了。

    @Autowired最好使用构造器注入,也就是说,不是直接将@Autowired放在成员变量上面,而是放在构建函数上面,然后通过构造函数的参数注入。为何要这么麻烦?

    3 Spring boot是对spring使用的简化,所以这整个的过程也是Spring boot所具备的能力。

    4 以上分析的是自己创建的类对象注入,现在如果用这种对象注入来使用成熟的包中的对象呢?

    4.1 使用配置文件生成bean

    <bean class="xxx"></bean>

    4.2 使用@Configuration注解生成bean

    @Configuration

    public class AppConfig {

        @Bean(name = "timedCache")

        public TimedCache<String, Muser> listStrBean() {

            return new TimedCache<String, Muser>(30 * 6000);

        } 

    }

    5 各个常用的注解

    5.1 dao

    @Repository

    5.2 model

    不需要注解

    5.3 restful的controller

    @RestController

    5.4 service

    service接口处不用,在接口的实现类处用@Service

    6 关于@Autowired

    要用到另外一个类的对象时,首先定义一个引用。

    然后在本类的构造函数中给该引用赋值,然后将@Autowired来注解这个构造函数。

  • 相关阅读:
    背包问题
    標準差、方差、正太分佈公式
    C#實現XML的增刪查改
    XML的基礎結構
    微信小程序入門學習資料鏈接
    微信小程序wxml無法實現頁面跳轉的問題
    088_jsp转成成servle所在的路径?
    075_jsp如何debug?
    028_Mybatis返回int类型为空时报错 attempted to return null from a method with a primitive return type (int)
    087_数据库类型
  • 原文地址:https://www.cnblogs.com/hustdc/p/9903247.html
Copyright © 2011-2022 走看看