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 ...
随机推荐
- Python字符串和日期相互转换的方法
import time,datetime # 日期转换成字符串 print time.strftime("%Y-%m-%d %X", time.localtime()) #字符串转 ...
- cronlog分割tomcat catalina.out日志
Tomcat 下日志文件 catalina.out 过大,几百兆或几个G,进而造成再也无法写入更多的日志内容,至使 Tomcat 无法处理请求,所以依靠cronlog来分割: 具体步骤如下: 1.安装 ...
- Navicat for Mysql 暴力破解教程
关于破解Navicat for MySQL的教程有很多 ,但是比较繁琐, 这里推荐一种比较简单的办法~ 网盘地址:链接: https://pan.baidu.com/s/1kVHyShL 密码: ws ...
- HDU 3569 Imaginary Date 简单期望
推一下公式.就会发现是这个.. 由于设结果有x种方案.则每一个数字出现的概率都均等,然后和就是x*m 每种方案的概率是1/x 每一个数出现的概率都是1/n 所以每一个方案的和就是 sum/n *m # ...
- hdu 4883 区间选点
昨天比赛的时候没有做出来,本来是想用贪心的,可是贪了好久都没有招, 今天在网上搜了解题报告~好像说这是一类区间选点问题: 有一个好的做法: (1)首先把题目中的时间全转化为分钟,那么区间就在0-144 ...
- JavaScript 实现命名空间(namespace)的最佳方案——兼容主流的定义类(class)的方法,兼容所有浏览器,支持用JSDuck生成文档
作者: zyl910 一.缘由 在很多的面向对象编程语言中,我们可以使用命名空间(namespace)来组织代码,避免全局变量污染.命名冲突.遗憾的是,JavaScript中并不提供对命名空间的原生支 ...
- .Net 5分钟搞定网页实时监控
一.为什么会用到网页实时监控 LZ最近在无锡买房了,虽然在上海工作,但是上海房价实在太高无法承受,所以选择还可以接受的无锡作为安身之地.买过房的小伙伴可能知道买房的流程,买房中间有一步很重要的就是需要 ...
- PHP中被忽略的性能优化利器:生成器
如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生.但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显.但是,生成 ...
- DB主从一致性架构优化4种方法
需求缘起 大部分互联网的业务都是"读多写少"的场景,数据库层面,读性能往往成为瓶颈.如下图:业界通常采用"一主多从,读写分离,冗余多个读库"的数据库架构来提升数 ...
- BeautifulSoup 抓取网站url
1 # -*- coding:utf-8 -*- 2 import urlparse 3 import urllib2 4 from bs4 import BeautifulSoup 5 6 url ...