电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Boot中單例類實現對象的注入方式

瀏覽:69日期:2023-06-27 17:11:07
Spring Boot 單例類實現對象的注入1、最近接手了一個項目

項目用的是SpringBoot,但其中有個類用的是單例,為了不改變單例,且還需要引入Spring管理的Bean對象

2、對于一個單例類按照平時的注解方式添加

啟動時會報空指針異常,因為static類對象是創建對象后,內存中還沒有注入Bean信息,且無法初始化Bean實例,這里的解決辦法是利用@PostConstruct來對單例類中對象的注入

@Componentpublic class MesssageHandle implements IMessageHandler { private final static Logger logger = LoggerFactory.getLogger(MesssageHandle.class); private static MesssageHandle instance = new MesssageHandle(); @Autowired private ScheduleService scheduleService; private MesssageHandle(){ } public static MesssageHandle getInstance() { return instance; } @PostConstruct public void init(){ instance = this; instance.scheduleService = this.scheduleService; }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

@Configurationpublic 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來注解這個構造函數。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | 福建成考网-福建成人高考网| ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 |