using FluentValidation.AspNetCore; using Microsoft.AspNetCore.Mvc; using SJZY.Expand.ABP.Core; using SJZY.Expand.ABP.Core.Cors; using SJZY.Expand.ABP.Core.Filter; using SJZY.Expand.ABP.Core.JsonSerialization; using SJZY.Expand.ABP.Core.Localization; using SJZY.Expand.ABP.Core.Prometheus; using SJZY.Expand.ABP.Core.Redis; using SJZY.Expand.ABP.Core.Swagger; using SJZY.Track.Application; using SJZY.Track.Repository; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Auditing; using Volo.Abp.Autofac; using Volo.Abp.Json; using Volo.Abp.Modularity; [assembly: HostingStartup(typeof(HostingStartup))] namespace SJZY.Track.Api { [DependsOn( typeof(AbpAutofacModule), typeof(SjzyAbpCodeModule), typeof(AbpAspNetCoreMvcModule), typeof(AbpAspNetCoreSerilogModule), typeof(SjzyTrackApplicationModule), typeof(SjzyTrackRepositoryModule) )] public class SjzyTrackApiModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { var environment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); context.Services.AddSwagger(); //过滤器相关配置 context.Services.AddMvc(options => { options.Filters.AddService(); options.Filters.AddService(); options.Filters.AddService(); }).AddNewtonsoftJson(); context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters(); //Json格式化全局处理 context.Services.Configure(options => { options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization. CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver(); options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss")); options.SerializerSettings.Converters.Add(new LongJsonConverter()); }); Configure(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"); Configure(options => { options.IsEnabled = false; }); context.Services.AddRedis(); } public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); var env = context.GetEnvironment(); if (env.IsDevelopment()) app.UseDeveloperExceptionPage(); app.UseRequestCulture(); app.UseRouting(); app.UseCorsPolicy(); app.UseConfiguredEndpoints(); app.UseAbpSwaggerUI(env); app.UseAbpSerilogEnrichers(); app.UsePrometheus(); #region 启动提示 Console.WriteLine($@" +-------------------------------------------------------+ | | | | | 轨迹中心启动成功 | | {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} | | | | | +-------------------------------------------------------+ "); #endregion } } }