- 基于Generator生成器的分离式导出CSV
引言最近在工作中需要实现一个数据导出功能。由于之前都是使用现成的工具或库,换了一家公司后,发现需要从零开始构建这个功能。最初我计划实现一个异步导出功能,但上级认为过于复杂,建议采用同步方式。于是,我开始寻找一种高效的同步导出方案。在这个过程中,我发现了PHP中的生成器(Generator),这是一个非常强大的工具,特别适合处理大数据场景。本文将详细介绍生成器的概念、工作原理、优势以及如何利用生成器
- 让支付更简单 Sping Boot 对接微信支付V3 (Java详细教程)
Mikael Lin
java微信
文章目录准备工作数据库设计代码一、准备工作1.需要开通商户号接入微信支付-微信商户平台https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal商户号要跟小程序(我是小程序支付)关联,指引https://kf.qq.com/faq/200520fueQrI200520aQf6Rr.html2.在商户平台上还需要配置支付
- php对接微信支付
Cccfffff203
微信php微信小程序
1、接入前准备根据微信支付官方文档指引https://pay.weixin.qq.com/doc/v3/merchant/4012064918下载微信支付证书脚本composerexecCertificateDownloader.php---k${9*****}-m${******}-f${********}-s${**********}-o${D:\wx\crm\app\\wechat}-k9∗
- PHP对接微信支付v3版本
李钢蛋
php微信开发语言
【以下内容是在thinkphp框架中编写的,做简单修改就可使用】一、扩展1-1、支付扩展扩展路径:extend/wxpay/Wx.php,根据项目实际情况修改。getSerialNoFromCert($this->apiclient_cert_url);$this->serial_no=$serial_no;$this->private_key=file_get_contents($this->a
- php slaveok_MongoDb - ThinkPHP 5.1 完全开发手册
bellebiself
phpslaveok
使用Mongo之前,需要装PHP的mongo扩展,访问http://pecl.php.net/package/mongodb,选择最新的版本即可,然后选择你的PHP版本对应的扩展。然后使用Composer安装扩展包:composerrequiretopthink/think-mongo接下来,需要修改数据库配置文件中的相关参数://数据库类型'type'=>'\think\mongo\Connec
- php where嵌套查询,thinkphp _complex 复合查询 where多个子组实现
WebKing
phpwhere嵌套查询
SELECT*FROM`user`WHERE(`mobile`='13824653465'OR`nickname`='evan'OR`openid`='14545-fdes')AND(`bind_seller`='fdaflj24214'OR`seller_type`='1')AND(`reg_time`10)THINKPHP数组where实现多个复合查询,例如上面的sql。查询官方手册,感觉无法
- php mongodb oid,use MongoDB::OID;
彤垚
phpmongodboid
#!/usr/bin/perlusewarnings;usestrict;useData::Dumper;useMongoDB;useMongoDB::OID;my$con=MongoDB::Connection->new;my$db=$con->syncrobid;my$account_col=$db->account;$account_col->remove;my$account_data={
- Linux查看TP6 command定时任务并重启
落落鱼2013
linux运维服务器定时任务
TP6定时任务设置:1、在项目根目录/app/command目录下创建定时任务类文件MemberSubmit.php使用$this->setName('memberSubmit')方法设置名称为memberSubmit的定时任务。namespaceapp\command;usethink\console\Command;usethink\console\Input;usethink\console
- ThinkPHP中使用MongoDB的union操作
原野-
php查看mongo集合的索引
MongoDB的union操作是什么。Union类似于SQL中的UNIONALL,可以将多个查询结果合并,并去除重复文档;使用ThinkPHP5或更高版本,通常会通过MongoDB的驱动或者第三方库来操作。不过,标准的MongoDB驱动可能不直接支持union操作,所以需要构造多个查询,分别执行然后合并结果检查MongoDB版本:确保使用的MongoDB版本支持union操作(MongoDB3.6
- 婚恋交友系统 小程序+app+h5端多端同步 TP6+Uni-app框架
phpjavavue.js
婚恋交友系统是一款基于现代技术框架开发的综合婚恋及交友平台,它融合了多种功能,旨在为用户提供安全、可靠、高效的婚恋交友体验。以下是对婚恋交友系统的详细分析:一、系统架构与技术技术框架:婚恋交友系统通常采用先进的TP6+Uni-app框架,结合PHP和Mysql等技术优势,为用户提供稳定且高效的服务环境。二、核心功能用户注册与登录:支持多种方式注册新账号,如手机号、电子邮箱等,并可以通过验证码或设置
- php程序员如何3天完成python学习
大0马浓
phppython学习
作为PHP程序员,你已具备编程思维和逻辑能力,3天内掌握Python基础语法和核心特性是完全可行的。关键在于利用已有编程经验进行知识迁移,同时聚焦Python独有的特性。以下是高强度学习路径(每日6-8小时):Day1:基础语法迁移(6小时)目标:掌握与PHP相似的基础语法,突破关键差异点变量与数据类型(1小时)动态类型:Python无需声明类型(age=25vsPHP的$age=
- THINKPHP5获取当前页面URL信息
向宇it
#thinkphpthinkphp域名
想要获取当前页面的url信息,可以借助thinkphp自带的request类来获取当前的url信息使用\think\Request类$request=Request::instance();或者使用自带的助手函数$request=request();$request=Request::instance();//获取当前域名echo'domain:'.$request->domain().'';//
- UNIAPP前端配合thinkphp5后端通过高德API获取当前城市天气预报
知码客
Uniappuni-app前端小程序知码客vue.js
如何通过UniApp前端项目与ThinkPHP5后端结合高德天气API获取天气预报信息。我们将分为前端和后端两部分进行实现。以下是一个完整的代码.一、项目结构project/├──frontend/(UniApp项目)│├──pages/││└──weather/││├──index.vue├──backend/(ThinkPHP5项目)│├──application/││├──controlle
- PHP任务系统管理工具:团队协作的高效解决方案
前端
在软件开发领域,任务系统管理工具对于提升项目效率和团队协作至关重要。PHP作为一种广泛使用的编程语言,拥有众多优秀的任务系统管理工具。这些工具不仅帮助开发者更好地管理和优化任务系统,还能提高工作效率,确保项目按时交付。本文将介绍几款流行的PHP任务系统管理工具,并探讨它们的特点和优势。一、PHP任务系统管理工具的重要性任务系统管理工具在软件开发过程中扮演着重要角色。它们可以帮助团队更好地分配和管理
- PHP缓存技术优化:提升网站性能的关键
奥顺互联V
phpphp缓存开发语言
在当今互联网高速发展的时代,网站性能优化成为各大企业以及个人开发者关注的焦点。而PHP缓存技术作为提升网站性能的关键技术之一,其优化对于网站加载速度、用户体验以及SEO排名等方面都有着重要的作用。本文将介绍PHP缓存技术的优化方法,帮助开发者更好地提升网站性能。一、为什么需要PHP缓存技术随着网站访问量的增加,PHP脚本的执行时间成为网站性能的瓶颈之一。每次访问页面都需要重新执行PHP脚本、查询数
- include 与 require 的区别及最佳使用场景
奥顺互联V
php开源php
include与require的区别及最佳使用场景在PHP开发中,include和require是用于引入外部文件的核心关键字。尽管两者功能相似,但它们在错误处理、执行逻辑和使用场景上存在显著差异。本文将深入解析这些区别,并提供实际开发中的最佳实践建议。一、核心区别1.错误处理机制require当目标文件不存在或包含失败时,会触发致命错误(E_COMPILE_ERROR),导致脚本立即终止。例如,
- 如何使用 preg_replace 处理复杂字符串替换
奥顺互联V
phpphp开发语言缓存
如何使用preg_replace处理复杂字符串替换在PHP开发中,preg_replace是处理正则表达式替换的核心函数,尤其适用于涉及模式匹配、动态替换和多规则处理的复杂场景。本文将通过实际案例和进阶技巧,解析如何高效利用该函数完成复杂字符串操作。一、基础语法与核心参数preg_replace的基本语法为:mixedpreg_replace(mixed$pattern,mixed$replace
- 网站页面导入css,图片等文件的相对路径和绝对路径问题
porkczr
网站css图片相对路径绝对路径网页
相对路径:“../”表示上一级目录开始,“./”表示当前同级目录开始,相对,肯定是个参考对象,很多人可能会认为这个参考对象就是导入css或图片等的页面,但其实对于网站访问而言,这个对象是参考你所访问的url地址的,因为最近在写thinkphp,相对的话对于thinkphp项目的Get方式访问是没有问题的,但是以默认方式访问就出问题了,图片无法加载,通过调试模式看了一下路径,才知道其实参考的对象是以
- 从零开始设计一个完整的网站:HTML、CSS、PHP、MySQL 和 JavaScript 实战教程
web13093320398
面试学习路线阿里巴巴htmlcssphp
前言本文将从实战角度出发,带你一步步设计一个完整的网站。我们将从静态网页开始,然后加入动态功能(使用PHP),连接数据库,最后加入JavaScript实现交互功能。通过这个教程,你将掌握一个网站的真正设计过程!目录网站功能设计准备工具设计静态网页(HTML+CSS)设计动态网页(PHP)创建数据库(MySQL)加入JavaScript实现交互测试与发布总结与扩展1.网站功能设计我们的网站将包含以下
- ThinkPHP运行目录设置为public子目录
NightReader
运维
ThinkPHP是一个快速、兼容和简单的面向对象的PHP框架,它遵循MVC(模型-视图-控制器)设计模式。在ThinkPHP框架中,public目录扮演着非常重要的角色,它被设计为框架的公共访问目录。Public目录设置的原因和解决方案是ThinkPHP框架结构和安全策略的核心部分。原因:1)安全性:将public设为唯一的公共访问目录可以增强应用的安全性。通过限制对框架其他部分的访问,可以防止潜
- PHP学习案例9 双色球
LOVE RICE
php
<?php//创建一个1-33的红色球号码区数组$red_num=range(1,33);//随机从红色球号码区数组获取6个键$keys=array_rand($red_num,6);//打乱
- PHP学习案例8 订货单显示
LOVE RICE
php
'主板','price'=>'379','producing'=>'广东','num'=>3),array
- php openssl支持的加密算法和加密模式及加密解密示范实例
YUJIANYUE
phphtml开发语言
textarea{width:88%;height:188px;}打印原始未加密数据==>$data";$cipher='aes-128-cbc';//定义加密算法和加密模式$key=openssl_random_pseudo_bytes(128);//生成随机密钥//加密数据$ivlen=openssl_cipher_iv_length($cipher);$iv=openssl_random_p
- 部署Wordpress(LNMP)+ELK
多练项目
Linux系统架构linuxelk运维
LNMP+EFK主机软件服务版本主机名192.168.100.100Nginx-1.18、Filebeatnode100192.168.100.101PHP-5.6.27node101192.168.100.102MySQL5.7node102192.168.100.103Kafkakafka103192.168.100.104Kafkanode104192.168.100.105Kafkanod
- php 设置redis 哈希,Redis 哈希(Hash)
weixin_39893042
php设置redis哈希
Redishash是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis中每个hash可以存储232-1键值对(40多亿)。实例redis127.0.0.1:6379>HMSETw3ckeyname"redistutorial"description"redisbasiccommandsforcaching"likes20visitors23000OKre
- php设定页面权限,必须正确登录才能访问指定页面
SugarFreeOixi
php开发语言后端
为了防止直接用域名就能访问需要账号密码正确才能进入的php网页,这里给出了一个方法。前提:建立好了数据库的连接,有了搭建好的网页。登录页面:(需求)已经连好了数据库,当用户名以及密码正确才能跳转到指定页面但是,遇到了一个问题:比如说,首页为index.php,指定页面为:www/yuming.cn/file1/chengji.php,我们完全可以通过www.yuming.cn/file1/chen
- thinkphp think-captcha 前后端分离 图形验证码
fendouweiqian
thinkphp
think-captcha本身支持API接口的形式返回,可以看到源代码:ob_start();//输出图像imagepng($this->im);$content=ob_get_clean();imagedestroy($this->im);//API调用模式if($this->api){return['code'=>implode('',$text),'img'=>'data:image/png
- 类似于 FastAdmin的快速后台开发框架都有哪些
zhangfeng1133
php
类似于FastAdmin,能够根据数据表直接生成程序、语言包和界面的框架,确实存在一些其他的选项。以下是一些推荐:ThinkPHP框架的扩展与工具:除了FastAdmin,ThinkPHP作为一个流行的PHP框架,有很多扩展和工具可以帮助你实现根据数据表自动生成代码的功能。你可以查找一些基于ThinkPHP的CRUD生成器或者代码生成器,它们通常能够根据你的数据库表结构快速生成对应的控制器、模型、
- FastAdmin 的安全性分析与最佳实践
奥顺互联_老张
php教程服务器运维php
FastAdmin的安全性分析与最佳实践FastAdmin是一个基于ThinkPHP的后台管理框架,因其简洁易用和功能强大而受到广泛欢迎。然而,随着网络安全威胁的日益增加,确保FastAdmin应用程序的安全性变得尤为重要。本文将分析FastAdmin的安全性,并提供一些最佳实践,以帮助开发者构建更安全的应用。一、安全性分析1.身份验证与授权FastAdmin提供了用户身份验证和权限管理功能,但开
- PHP函数与类:面向对象编程实践指南
奥顺
phpphpandroid开发语言mysql开源
PHP函数与类:面向对象编程实践指南PHP的面向对象编程(OOP)能力使其成为构建可维护、可扩展Web应用的重要工具。本文从函数封装到类设计,系统讲解PHP面向对象编程的核心概念与实践技巧。一、函数:代码复用的基本单元1.函数定义与参数传递//基础函数定义functiongreet($name='访客'){return"欢迎,$name!";}echogreet('Alice');//输出:欢迎,
- linux系统服务器下jsp传参数乱码
3213213333332132
javajsplinuxwindowsxml
在一次解决乱码问题中, 发现jsp在windows下用js原生的方法进行编码没有问题,但是到了linux下就有问题, escape,encodeURI,encodeURIComponent等都解决不了问题
但是我想了下既然原生的方法不行,我用el标签的方式对中文参数进行加密解密总该可以吧。于是用了java的java.net.URLDecoder,结果还是乱码,最后在绝望之际,用了下面的方法解决了
- Spring 注解区别以及应用
BlueSkator
spring
1. @Autowired
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean,或者不存在UserDao类型的bean,会抛出 BeanCreationException异常,这时可以通过在该属性上再加一个@Qualifier注解来声明唯一的id解决问题。
2. @Qualifier
当spring中存在至少一个匹
- printf和sprintf的应用
dcj3sjt126com
PHPsprintfprintf
<?php
printf('b: %b <br>c: %c <br>d: %d <bf>f: %f', 80,80, 80, 80);
echo '<br />';
printf('%0.2f <br>%+d <br>%0.2f <br>', 8, 8, 1235.456);
printf('th
- config.getInitParameter
171815164
parameter
web.xml
<servlet>
<servlet-name>servlet1</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>str</param-name>
- Ant标签详解--基础操作
g21121
ant
Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。 project:每个构建文
- [简单]代码片段_数据合并
53873039oycg
代码
合并规则:删除家长phone为空的记录,若一个家长对应多个孩子,保留一条家长记录,家长id修改为phone,对应关系也要修改。
代码如下:
- java 通信技术
云端月影
Java 远程通信技术
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来
- string与StringBuilder 性能差距到底有多大
aijuans
之前也看过一些对string与StringBuilder的性能分析,总感觉这个应该对整体性能不会产生多大的影响,所以就一直没有关注这块!
由于学程序初期最先接触的string拼接,所以就一直没改变过自己的习惯!
- 今天碰到 java.util.ConcurrentModificationException 异常
antonyup_2006
java多线程工作IBM
今天改bug,其中有个实现是要对map进行循环,然后有删除操作,代码如下:
Iterator<ListItem> iter = ItemMap.keySet.iterator();
while(iter.hasNext()){
ListItem it = iter.next();
//...一些逻辑操作
ItemMap.remove(it);
}
结果运行报Con
- PL/SQL的类型和JDBC操作数据库
百合不是茶
PL/SQL表标量类型游标PL/SQL记录
PL/SQL的标量类型:
字符,数字,时间,布尔,%type五中类型的
--标量:数据库中预定义类型的变量
--定义一个变长字符串
v_ename varchar2(10);
--定义一个小数,范围 -9999.99~9999.99
v_sal number(6,2);
--定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
- Mockito:一个强大的用于 Java 开发的模拟测试框架实例
bijian1013
mockito单元测试
Mockito框架:
Mockito是一个基于MIT协议的开源java测试框架。 Mockito区别于其他模拟框架的地方主要是允许开发者在没有建立“预期”时验证被测系统的行为。对于mock对象的一个评价是测试系统的测
- 精通Oracle10编程SQL(10)处理例外
bijian1013
oracle数据库plsql
/*
*处理例外
*/
--例外简介
--处理例外-传递例外
declare
v_ename emp.ename%TYPE;
begin
SELECT ename INTO v_ename FROM emp
where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
exceptio
- 【Java】Java执行远程机器上Linux命令
bit1129
linux命令
Java使用ethz通过ssh2执行远程机器Linux上命令,
封装定义Linux机器的环境信息
package com.tom;
import java.io.File;
public class Env {
private String hostaddr; //Linux机器的IP地址
private Integer po
- java通信之Socket通信基础
白糖_
javasocket网络协议
正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信。每一个连接的通信端叫做一个Socket。一个完整的Socket通信程序应该包含以下几个步骤:
①创建Socket;
②打开连接到Socket的输入输出流;
④按照一定的协议对Socket进行读写操作;
④关闭Socket。
Socket通信分两部分:服务器端和客户端。服务器端必须优先启动,然后等待soc
- angular.bind
boyitech
AngularJSangular.bindAngularJS APIbind
angular.bind 描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。 使用方法: angular.bind(se
- java-13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class KickOutBadGuys {
/**
* 题目:13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
* Maybe you can find out
- Redis.conf配置文件及相关项说明(自查备用)
Kai_Ge
redis
Redis.conf配置文件及相关项说明
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
- [强人工智能]实现大规模拓扑分析是实现强人工智能的前奏
comsci
人工智能
真不好意思,各位朋友...博客再次更新...
节点数量太少,网络的分析和处理能力肯定不足,在面对机器人控制的需求方面,显得力不从心....
但是,节点数太多,对拓扑数据处理的要求又很高,设计目标也很高,实现起来难度颇大...
- 记录一些常用的函数
dai_lm
java
public static String convertInputStreamToString(InputStream is) {
StringBuilder result = new StringBuilder();
if (is != null)
try {
InputStreamReader inputReader = new InputStreamRead
- Hadoop中小规模集群的并行计算缺陷
datamachine
mapreducehadoop并行计算
注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的最大效用为上策。
-----------------------------------------------------------------
- 小学4年级英语单词背诵第二课
dcj3sjt126com
englishword
egg 蛋
twenty 二十
any 任何
well 健康的,好
twelve 十二
farm 农场
every 每一个
back 向后,回
fast 快速的
whose 谁的
much 许多
flower 花
watch 手表
very 非常,很
sport 运动
Chinese 中国的
- 自己实践了github的webhooks, linux上面的权限需要注意
dcj3sjt126com
githubwebhook
环境, 阿里云服务器
1. 本地创建项目, push到github服务器上面
2. 生成www用户的密钥
sudo -u www ssh-keygen -t rsa -C "
[email protected]"
3. 将密钥添加到github帐号的SSH_KEYS里面
3. 用www用户执行克隆, 源使
- Java冒泡排序
蕃薯耀
冒泡排序Java冒泡排序Java排序
冒泡排序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 10:40:14 星期二
http://fanshuyao.iteye.com/
- Excle读取数据转换为实体List【基于apache-poi】
hanqunfeng
apache
1.依赖apache-poi
2.支持xls和xlsx
3.支持按属性名称绑定数据值
4.支持从指定行、列开始读取
5.支持同时读取多个sheet
6.具体使用方式参见org.cpframework.utils.excelreader.CP_ExcelReaderUtilTest.java
比如:
Str
- 3个处于草稿阶段的Javascript API介绍
jackyrong
JavaScript
原文:
http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/?utm_source=html5weekly&utm_medium=email
本文中,介绍3个仍然处于草稿阶段,但应该值得关注的Javascript API.
1) Web Alarm API
&
- 6个创建Web应用程序的高效PHP框架
lampcy
Web框架PHP
以下是创建Web应用程序的PHP框架,有coder bay网站整理推荐:
1. CakePHP
CakePHP是一个PHP快速开发框架,它提供了一个用于开发、维护和部署应用程序的可扩展体系。CakePHP使用了众所周知的设计模式,如MVC和ORM,降低了开发成本,并减少了开发人员写代码的工作量。
2. CodeIgniter
CodeIgniter是一个非常小且功能强大的PHP框架,适合需
- 评"救市后中国股市新乱象泛起"谣言
nannan408
首先来看百度百家一位易姓作者的新闻:
三个多星期来股市持续暴跌,跌得投资者及上市公司都处于极度的恐慌和焦虑中,都要寻找自保及规避风险的方式。面对股市之危机,政府突然进入市场救市,希望以此来重建市场信心,以此来扭转股市持续暴跌的预期。而政府进入市场后,由于市场运作方式发生了巨大变化,投资者及上市公司为了自保及为了应对这种变化,中国股市新的乱象也自然产生。
首先,中国股市这两天
- 页面全屏遮罩的实现 方式
Rainbow702
htmlcss遮罩mask
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就
- 关于angularjs的点滴
tntxia
AngularJS
angular是一个新兴的JS框架,和以往的框架不同的事,Angularjs更注重于js的建模,管理,同时也提供大量的组件帮助用户组建商业化程序,是一种值得研究的JS框架。
Angularjs使我们可以使用MVC的模式来写JS。Angularjs现在由谷歌来维护。
这里我们来简单的探讨一下它的应用。
首先使用Angularjs我
- Nutz--->>反复新建ioc容器的后果
xiaoxiao1992428
DAOmvcIOCnutz
问题:
public class DaoZ {
public static Dao dao() { // 每当需要使用dao的时候就取一次
Ioc ioc = new NutIoc(new JsonLoader("dao.js"));
return ioc.get(