三层结构
通常意义上的三层架构是指:
表示层 / 表现层 / (用户)界面层(UI:User Interface layer)
业务逻辑层 / 应用程序层 / 领域层(BLL:Business Logic Layer)
数据访问层 / 数据层 / 持久层(DAL:Data access layer)
通常意义上的三层架构是指:
表示层 / 表现层 / (用户)界面层(UI:User Interface layer)
业务逻辑层 / 应用程序层 / 领域层(BLL:Business Logic Layer)
数据访问层 / 数据层 / 持久层(DAL:Data access layer)
注册:
builder.Serivces.AddTransient< 抽象Service, XXXService>();//若注入IimplementationService,则注入参数类型应为抽象类。
注入:
-在Controller/Service构造器中将作为参数注入;
-也能在minimalApi里作为参数注入;
生命周期:
Transient
瞬时
builder.Serivces.AddTransient< Isever, sever>();
builder.Serivces.AddTransient(typeof(Isever),typeOf(sever));
Scoped
线程/作用域
类似会话。
builder.Serivces.AddScoped< Isever, sever>();
builder.Serivces.AddScoped(typeof(Isever),typeOf(sever));
Singleton
单例
可用在数据库、redis连接上。
builder.Serivces.AddSingleton< Isever, sever>();
builder.Serivces.AddSingleton(typeof(Isever),typeOf(sever));
builder.Serivces.AddSingleton<Isever>(Server sever));
注入方式:
与标准默认WebApi区别:
缺少:
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
app.UserHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
var builder = webApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello world!");
var app =webApplication .Create(args);
app.MapGet("/", () => "This is a GET");
app.MapPost("/",()=> "This is a POST");
app.MapPut("/", () => "This is a PUT");
app.MapDeleteC"/", () => "This is a DELETE");
app.Run();
这里的第一个参数可以进行路由约束,如app. MapGet("/posts/ {slug:regex(^[a-z0-9_ -]+5)}",(string slug) => $"Post
{slug}");
简单或复杂数据结构;
返回指定Http状态码;
-ActionResult
可同时返回状态码及对象。
返回值为ActionResult< ItemClass>
Post传递数据:
Axios 在RequestPayload中传递Json格式;
Ajax 在QueryStringParameter(Form表单)中传递键值对;