LindDotNetCore~入门基础
LindDotNetCore基础介绍
- 运行环境
- 配置文件
- 服务的注册
- 配置文件的注册
- 服务的使用
- 配置文件的使用
运行环境
vs2017+.netcore2.0,vs需要升级到最新包
配置文件
appsetting.json,我们提出了开发环境,测试环境和生产环境,分别对应不同的文件
- 开发:Development,appsetting.Development.json
- 测试:Staging,appsetting.Development.json
- 生产:Producting,appsetting.Development.json
服务的注册
在.net core里,包括在LindDotNetCore里,服务的注册是在startup里进行,你可以方便的控制每个组件的生命周期。
- 单例,整个进程使用同一个实例,像redis,mongodb,日志
- 线程单例,在一个线程里它是唯一的实例,在api环境下,你的一个http请求下来,一个对象只生产一次,像http请求链
- 瞬息,每次注入时,都会生产一个新的实体。像仓储对象,数据上下文
public void ConfigureServices(IServiceCollection services)
{
//Lind.DotNetCore封装的一些模块
services.AddLog4Logger(o =>
{
o.Log4ConfigFileName = "log4.config";
o.ProjectName = "test";
});
services.UseDapper(o =>
{
o.ConnString = $"Data Source={Directory.GetCurrentDirectory()}/intergratetest.db";
o.DbType = Lind.DotNet
}
}
配置文件的注册
大叔封装了配置文件的注入和获取方法,注入需要依赖环境变量,它在startup初始时被生产。
public Startup(IConfiguration configuration, IHostingEnvironment env)
{
ConfigFileHelper.Set(env: env);
Configuration = configuration;
}
服务的使用
我们的服务在startup里一次性被注入,然后在每个控制器的构造方法里被使用,注意:我们的服务支持依赖型注入,
这点对我们重要,比如一个服务的生产依赖于另一个服务,那么,这种关系由core DI帮我们实现!
[Route("api/[controller]")]
public class ValuesController : Controller
{
ILogger _logger;
public ValuesController(ILogger logger)
{
_logger = logger;
}
配置文件的使用
我们可以直接使用Utils命名空间下的ConfigFileHelper对象,它里面有Get方法,用来获取具体的配置节点
注意,咱们的配置节点支持强类型和字符串两种,强类型要求你提供泛型,字符串只要输入名称就可以
返回具体的值了。
var options = new EFConfig();
//装饰
configure?.Invoke(options);
//优先级控制
ObjectMapper.MapperTo(options, ConfigFileHelper.Get<EFConfig>());
待续...
回到目录
LindDotNetCore~入门基础的更多相关文章
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- 01shell入门基础
01shell入门基础 为什么学习和使用shell编程 shell是一种脚本语言,脚本语言是相对于编译语言而言的.脚本语言不需要编译,由解释器读取程序并且执行其中的语句,而编译语言需要编译成可执行代码 ...
- Markdown入门基础
// Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...
- JavaScript入门基础
JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...
- C++ STL编程轻松入门基础
C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...
- HTML入门基础教程相关知识
HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...
- Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
- Linux shell入门基础(一)
Linux shell入门基础(一): 01.增加删除用户: #useradd byf userdel byf(主目录未删除) userdel -r byf 该用户的属性:usermod 用 ...
- AngularJS入门基础PPT(附下载链接)
学习了Angularjs有段时间,自己写了一个PPT,个人认为总结的非常全面,对于入门基础够了. 大致模块有:Angularjs简单介绍,Angularjs特性,hello world,Control ...
随机推荐
- Foxmail 7.0破解版,拷贝到新机器后,发送邮件乱码问题
申请了新机器,挺开心,键盘和鼠标也好用了,但是新机器也随之而来一些不便,以前存储的数据需要重新拷贝.还有一些邮件,有些邮件标记了*号. Foxmail7.0绿色版本还挺好用,直接拷贝到新机器上就能直接 ...
- json数据导出excel
最近做的一个项目涉及到把数据导出到excel里面,网上找来找去,最终找到两种办法,废话不多说了 第一种: 拿到表格的id就可以抓取表格的数据,导出到excel,这种方式简单粗暴,引入这两个插件即可. ...
- 异步编程Async/await关键字
异步编程Async \await 关键字在各编程语言中的发展(出现)纪实. 时间 语言版本 2012.08.15 C#5.0(VS2012) 2015.09.13 Python 3.5 2016.03 ...
- Heritrix1.14.4在Eclipse的配置和使用
转载 1.首先在 Eclipse 中新建 Java 工程 ,工程名自取,以MyHeritrix为例.利用下载的源代码包根据以下步骤来配置这个工程. 2.导入类库 Heritrix 所用到的工具类库都在 ...
- C++ map multimap
map multimap map,multimap key-value对容器,也叫字典,map中不能存放key相同的元素,而multimap可以,容器中元素默认按升序排序 map multimap的相 ...
- Spring之AOP一
面向切片式编程不仅在Java中存在,在其他语言也是存在,例如asp.net的管道模型中,可以利用aop来进行自定义一些操作,比如权限认证.日志等.今天主要是引入AOP,具体它涉及到的专有名词先不做解释 ...
- ajax_get/post_两级联动
使用ajax实现菜单联动 通常情况下,GET请求用于从服务器上获取数据,POST请求用于向服务器发送数据. 需求:选择第一个下拉框的值,根据第一个下拉框的值显示第二个下拉框的值 首先使用GET方式. ...
- thinkphp5基础
前面的话 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持 ...
- TableML Excel编译/解析工具
TableML TableML, Table Markup Language, 基于电子表格的标记语言, 类似JSON, XML, INI,TableML可以作为软件项目的配置标记语言, 与之不同的是 ...
- mybatis if-else(写法)
mybaits 中没有else要用chose when otherwise 代替 范例一 <!--批量插入用户--> <insert id="insertBusinessU ...