zoukankan      html  css  js  c++  java
  • .Net Core 3.x Api开发笔记 -- Starup入门(二)

    上节演示如何创建一个 api项目,本节初步认识项目相关的基础内容!

    项目生成后,你会在根目录看到两个文件  Program.cs、Startup.cs

    Program.cs就不多说了,就是一个控制台程序,做初始化加载操作

    public class Program
        {
            public static void Main(string[] args)
            {
                CreateHostBuilder(args).Build().Run();
            }
    
            /// <summary>
            /// 默认初始化系统内置的配置
            /// </summary>
            /// <param name="args"></param>
            /// <returns></returns>
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    });
        }

    Startup.cs 在项目开发当中,会经常打交道,主要有两个方法,个人理解如下

    public class Startup
        {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    
            public IConfiguration Configuration { get; }
    
    
            /// <summary>
            ///  This method gets called by the runtime. Use this method to add services to the container.
            ///  侧重于注册或者添加支持某个组件
            ///  当你需要用到某个第三方组件时,在这里添加之后就可以使项目支持了
            ///  比如:要想使项目支持跨域时, 添加相应包之后,就需要在这里使用services.AddCors 添加组件支持
            ///  再比如:做认证授权时,想要使用第三方JWT组件生成token之类的内容时,也需要在这里添加相关支持
            ///  再比如:读取配置文件时,也需要在这里做相应操作
            ///  等等。。。
            ///  它就类似一台组装台式机,当需要硬盘时,在这里安装硬盘的注册支持就可以使用;当需要内存条时,同样在这里注册支持才能使用
            /// </summary>
            /// <param name="services"></param>
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddControllers();
            }
    
            /// <summary>
            /// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            /// 侧重于客户端的http请求过滤,或者说请求拦截,配置如何去处理http请求
            /// 当客户端发起一个http请求时,会进入该方法,按照从上到下的顺序依次执行,
            /// 当执行到某个业务时,如果不符合业务规则,会直接返回,并根据你设置的程序逻辑给出相应提示!
            /// 比如:原来MVC中的路由配置直接挪到了这里
            /// 比如:当你做认证授权过滤时,就要在这里配置一下,然后登录时会自动先经过这里做逻辑验证
    /// 用管道比喻就是,在一个管道里边做了一层层横向拦截,交钱了就放行,没钱的从哪儿来回哪儿去!
    /// </summary> /// <param name="app"></param> /// <param name="env"></param> public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } }
  • 相关阅读:
    数据共享之死锁
    响应式菜单制作
    工作日志2014-07-01
    Thinkphp 无法使用-&gt;order() 排序的两种解决的方法!
    C#
    HDU1232 畅通project 并查集
    Cocos2d-x优化中图片优化
    1.3.4 设计并发友好的应用程序
    UIView的层介绍
    《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
  • 原文地址:https://www.cnblogs.com/peterzhang123/p/14000537.html
Copyright © 2011-2022 走看看