Framework

我们离得开 Spring 框架吗?

痞子三分冷 提交于 2020-12-25 05:54:39
后端程序员,尤其是 Java 后端程序员,离得开 Spring 框架吗? 显然,答案是否定的。这些年, Spring 早已成为 Java 后端开发事实上的行业标准 。无数大厂选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接触到 Spring 。 其实我理解 Spring 就是一个万能插排,可以对接几乎一切的开源接口,而且方便解耦,能简化开发。早些年框架还没有那么丰富,后面出现了 Spring Boot 和 Spring Cloud,它们可以 帮助工程师更好地基于 Spring 及各种基础设施来快速搭建系统,可以说,它们的诞生又一次解放了大家的生产力。 但 Spring 好用可不好学,记得我以前学习时,在代码之外,看着一堆依赖和配置,总是有些摸不清方向;组件那么多,总是不知道该从何入手;每天看公司使用 SSH 框架,就像看天书一样摸不着头脑: 依赖注入是什么玩意儿?直接 new 一个不就行了吗? 面向切面又是什么鬼? 我面向我的对象还不够吗? ...... 诸如此类的疑惑每天都在出现,为此也没少挨骂。其实,从宏观的视角想一想,框架出现的本质是什么?框架是为了解决一个又一个在开发中所遇到的问题而诞生的。不同的框架,都是为了解决不同的问题,而 一名合格的 Java 后端工程师,Spring Framework、Spring Boot、Spring

Django框架(十八)—— drf:序列化组件(serializer)

走远了吗. 提交于 2020-12-25 05:15:47
序列化组件 # 模型层 from django.db import models class Book(models.Model): nid = models.AutoField(primary_key= True) name = models.CharField(max_length=32 ) price = models.DecimalField(max_digits=5, decimal_places=2 ) publish_date = models.DateField() publish = models.ForeignKey(to= ' Publish ' , to_field= ' nid ' , on_delete= models.CASCADE) authors = models.ManyToManyField(to= ' Author ' ) def __str__ (self): return self.name class Author(models.Model): nid = models.AutoField(primary_key= True) name = models.CharField(max_length=32 ) age = models.IntegerField() author_detail = models.OneToOneField

ios原生项目内嵌u3d工程

房东的猫 提交于 2020-12-24 08:23:29
本文一反常态, 目标是把u3d工程以framewWork形式 内嵌原生IOS项目 1、xcode中新建Cocoa Touch FrameWork。取名u3dFrameWork 2、把u3d导出的xcode中,Class、Library 拷贝到u3dFrameWork 中 采用 方式引入 从library中移除掉libil2cpp 3 以下头文件移动到public 4、Build Phases 下头文件引用中 移除RegisterMonoModules.h compile sources 中移除main.mm 和RegisterMonoModules.cpp 5、配置修改 Build Settings -> Header Search Paths: $(inherited) "$(SRCROOT)/Classes" "$(SRCROOT)" $(SRCROOT)/Classes/Native $(SRCROOT)/Libraries/bdwgc/include $(SRCROOT)/Libraries/libil2cpp/include Build Settings -> Library Search Paths: $(inherited) "$(SRCROOT)" "$(SRCROOT)/Libraries" Build Settings -> Prefix Header:

C#/.Net Core/WPF框架初建(国际化、主题色)

浪尽此生 提交于 2020-12-24 07:43:05
C#/.Net Core/WPF框架初建(国际化、主题色) English | 简体中文 作为 TerminalMACS 的一个子进程模块 - WPF管理端,目前搭建框架部分功能:本地化、国际化、主题色修改等。 导航目录 框架已添加功能说明 1.1. 国际化、本地化 1.2. Metro风格主窗体 1.3. 动态更换主题色 关于TerminalMACS及本WPF管理端 关于项目开源 参考资料 1. 框架已添加功能说明 1.1. 国际化、本地化 源码放在Github上,希望分享给更多人,所以添加了国际化功能,默认支持中、英、日三国语言,按照已有套路扩展其他语言也方便,看下面的效果: 本项目(TerminalMACS的WPF管理端)使用的资源字典存储翻译文件,其他方式还有资源文件、微软官方的国际化方案(未研究)等。下面是翻译文件截图: 三个资源文件使用需要注意: 选择一个默认文件(比如en.xaml,英文)作为默认语言文件,需要将生成操作属性设置为 "页", 设置截图如下: 其他语言文件设置生成操作属性为内容,设置截图如下: 需要将默认语言资源文件添加到App.xaml中,其他语言不用: <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries>

Django-rest framework框架

此生再无相见时 提交于 2020-12-23 07:14:48
第一章:接口规范 01 Web API接口 02 Restful 接口规范 第二章:请求响应组件 01 请求组件 02 响应组件 03 解析组件 第三章:序列化组件 01 Serializer组件 02 ModelSerializer组件 03 ListModelSerializer组件 第四章:视图组件 01 两个视图基类 02 五个视图扩展类 03 七个功能视图子类 04 视图集 第五章:三大认证组件 01 认证组件 02 权限组件 03 频率组件 第六章:jwt认证 01 jwt认证 第七章:其他功能组件 01 其他功能组件 来源: oschina 链接: https://my.oschina.net/u/4363260/blog/3378528

.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记

北城以北 提交于 2020-12-21 19:24:59
2.1 引入 http协议 web server && web application framework .net 与 .net core asp .net core web api 示例 CS:客户端-服务器 BS:浏览器-服务器 2.1.1 http协议 请求过程 消息结构 请求方法 状态码 header 请求过程 1.URL解析 2.DNS查询 3.TCP连接 4.处理请求 5.接受响应 6.渲染页面 在浏览器输入 URL 回车之后发生了什么: https://juejin.im/post/6844903922084085773 消息结构 了解HTTP请求和响应结构: https://juejin.im/post/6844903843277307917 请求方法 GET 获取 POST 创建 PUT 替换(资源整体替换) PATCH 修改(资源段落性修改) DELETE 删除 OPTIONS 状态码 200 300 已转移地址/永久移动(response redirect) 401 未认证 403 未授权 404 未找到文件 500 内部服务错误,服务器不知道如何处理的错误 HTTP协议详解: https://www.cnblogs.com/tankxiao/archive/2012/02/13/2342672.html 2.1.2 web server && web

ASP.NET Core ActionFilter引发的一个EF异常

◇◆丶佛笑我妖孽 提交于 2020-12-21 15:08:31
最近在使用ASP.NET Core的时候出现了一个奇怪的问题。在一个Controller上使用了一个ActionFilter之后经常出现EF报错。 InvalidOperationException: A second operation started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe. Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection() 这个异常说Context在完成前一个操作的时候第二个操作依据开始。这个错误还不是每次都会出现,只有在并发强的时候出现,基本可以判断跟多线程有关系。看一下代码: public static class ServiceCollectionExt { public static void AddAgileConfigDb(this IServiceCollection sc) { sc.AddScoped<ISqlContext, AgileConfigDbContext>(); } } [TypeFilter(typeof

把旧系统迁移到.Net Core 2.0 日记 (15) --Session 改用Redis

蓝咒 提交于 2020-12-19 18:08:47
安装Microsoft.Extensions.Caching.Redis.Core NuGet中搜索Microsoft.Extensions.Caching.Redis.Core并安装,此NuGet包是对Caching的拓展,即可以更换Caching存储介质 appsettings.json配置Redis连接字符串 appsettings.json配置Redis连接字符串(相当于web.config里面配置appsetting节点),注意:添加位置要在Logging上面 { " ConnectionStrings " : { " RedisConnection " : " 127.0.0.1:6379,password=xxxxxxxxx " }, " Logging " : { " IncludeScopes " : false , " LogLevel " : { " Default " : " Warning " } } } Startup.cs的ConfigureServices方法中添加引用 public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddDistributedRedisCache

Django框架(十八)—— CBV源码分析、restful规范、restframework框架

巧了我就是萌 提交于 2020-12-19 15:05:32
CBV源码分析、restful规范、restframework框架 一、CBV源码分析 1、url层的使用CBV from app01 import views url( r'book/',views.Book.as_view) 2、as_view方法 as_view 是一个类方法,实际上是一个闭包函数(内层函数包含对外层作用域的使用) 请求来了以后,调用 as_view 方法,调用函数中的 view 方法, view 方法是调用了 dispatch 方法 @classonlymethod def as_view (cls, **initkwargs): def view (request, *args, **kwargs): self = cls(**initkwargs) if hasattr(self, 'get') and not hasattr(self, 'head'): self.head = self.get self.request = request self.args = args self.kwargs = kwargs # 如果调用的类Book没有写dispatch方法,就会调用View中的dispatch方法 return self.dispatch(request, *args, **kwargs) view.view_class = cls view

IDEA使用Gradle编译Spring源码

淺唱寂寞╮ 提交于 2020-12-19 09:57:25
本文使用的IDEA为社区版本。源码编译地址(自行拉取到本地或fork到自己的git仓库): https://github.com/Nuclear-Core-Learning/spring-framework IDEA下载地址: https://www.jetbrains.com/idea/download/other.html 目录 前言 先决条件 Gradle下载 Gradle解压 配置环境变量 测试安装 编译之前 导入IDEA IDEA Spring源码构建 JDK9使用依赖 前言 spirng-framework源码从5.0开始使用gradle作为编译工具 spirng-framework源码编译非常考验网速(网络抖动都有可能导致编译失败) spirng-framework源码一定要配置国内的maven仓库地址如阿里云等 spirng-framework源码编译一定要配调大JVM参数否则可能因为内存分配不足导致失败 spirng-framework源码编译版本一般使用1.8以上 spirng-framework源码IDEA和Gradle版本是成败的关键(2018.3编译冲突,2019.3成功) spirng-framework源码支持Eclipse和IDEA导入 先决条件 已安装JDK/JRE(版本7或以上),这里是Win10系统 在命令行输入:java -version