当前位置: 首页 > news >正文

建设网站对比方案上海网站建设公司兴田德润简介

建设网站对比方案,上海网站建设公司兴田德润简介,网站设计公司深圳,怎样创建网站吉洋大鼓一、核心概念 1.1软件模块化 软件模块化是一种软件开发的设计模式#xff0c;它将一个大型的软件系统划分成多个独立的模块#xff0c;每个模块都有自己的功能和接口#xff0c;并且能够与其他模块独立地工作1. 软件模块化设计可以使软件不至于随着逐渐变大而变得不可控它将一个大型的软件系统划分成多个独立的模块每个模块都有自己的功能和接口并且能够与其他模块独立地工作1. 软件模块化设计可以使软件不至于随着逐渐变大而变得不可控最终要达到可控、可维护、可扩展的目的2 Model-View-Controller  将软件用户界面和业务逻.辑分离 再细化  每一层承担特定的职能高层依赖于低层辑分离 具体技术 分布式服务器 模块化开发可以带来以下好处 提高代码的复用性模块化可以将代码划分成可重用的部分降低代码的冗余和重复提高代码的复用性。简化代码的维护和调试当一个软件系统变得越来越复杂时进行模块化开发可以使得每个模块都相对独立这样就可以方便地维护和调试每个模块而不必考虑整个系统的复杂性。提高代码的可读性模块化可以使得代码更加结构化清晰明了从而提高代码的可读性和可维护性。提高开发效率模块化开发可以使得团队成员在不同模块上并行开发从而提高开发效率。降低项目的风险模块化开发可以使得开发 总之模块化开发是一种有效的软件开发模式可以提高软件开发的质量、效率和可维护性特别是在大型软件系统的开发中模块化更是必不可少的。 1.2Spring技术栈 Spring技术栈提供了Servlet和反应式这两种Web技术栈在应用层面充分向异步和非阻塞并发靠拢。Spring MVC为现有的应用程序提供了一些反应式特性。Spring Boot 2内置了反应式Web容器默认使用的是Netty当然也可以选择Tomcat、Jetty或Undertow应用程序可以分别通过Spring MVCspring-webmvc模块和Spring WebFluxspring-webflux模块来使用这两个技术栈。 1.3Servlet原理 工作机制 Servlets的作用 通讯功能Servlet对象的生命周期管理多线程支持安全性支持 Servlet和JSP的区别 Servlet和JSP的区别如下Servlet在Java代码中可以通过HttpServletResponse对象动态输出HTML内容而JSP是在静态HTML内容中嵌入Java代码然后Java代码在被动态执行后生成HTML内容。JSP可以方便地实现页面的动态生成可以更好地实现MVC模式而Servlet更适合处理业务逻辑。JSP的执行过程是先编译成Servlet再由Servlet容器进行执行。因此JSP的执行效率比Servlet低 1.4Spring容器 Spring容器来负责创建对象并把对象关联起来提供服务。 容器提供了公共服务容器依赖于配置信息 Spring框架配置 相关注解 相关容器 Spring拥有两种类型的容器 BeanFactory BeanFactorv负责读取bean配置信息管理bean的加载实例化维护bean之间的依赖关系负责bean的生命周期每次获取对象时才会创建对象 ApplicationContext ApplicationContext由BeanFactory派生而来 同时也继承了容器的高级功能如MessageSource国际化资源接口、ResourceLoader资源加载接口、ApplicationEventPublisher应用事件发布接口等提供了更多面向实际应用的功能。在容器启动时就会创建所有的对象 生命周期 控制反转 控制反转是指Bean对象之间的依赖不由它们自己管理而是由Spring容器负责管理对象之间的依赖 Spring容器采用依赖注入DI的方式实现控制反转 解释 控制反转和依赖注入是两个相关的软件设计原则它们的目的是降低代码之间的耦合度提高可维护性和可测试性。控制反转Inversion of ControlIoC是一种思想它指的是将对象的创建和管理交给一个外部容器而不是由对象自己控制。依赖注入Dependency InjectionDI是实现控制反转的一种常用方法它指的是在对象创建时由容器将对象所依赖的其他对象注入到它的属性或构造方法中。这样对象就不需要自己创建或查找依赖的对象而只需要声明它们的类型或名称  举例 例如假设有一个类A它依赖于另一个类B。如果没有控制反转和依赖注入类A可能会在自己的构造方法中使用new关键字来创建一个类B的实例。这样类A就和类B紧密耦合在一起如果类B发生了变化类A也需要修改。而且这样的代码很难进行单元测试因为类A无法替换掉类B的实例。 如果使用了控制反转和依赖注入类A就不需要自己创建类B的实例而是将它作为一个参数传入自己的构造方法中。这样类A就只需要知道类B的接口而不需要关心它的具体实现。而且这样的代码更容易进行单元测试因为类A可以使用模拟对象mock object来代替类B的实例。 注解方式 Autowired时首先在容器中查询对应类型的bean 如果查询结果刚好为一个就将该bean装配给Autowired指定的数据 如果查询的结果不止一个那么Autowired会根据变量的名称来查找。  1.5 Maven简介  Maven文件架构 POM文件 POM文件是Maven项目的配置文件它用XML格式描述了项目的基本信息、依赖关系、构建设置、报告生成等内容。POM文件通常放在项目的根目录下命名为pom.xml。POM文件的结构由一个project元素和若干子元素组成其中最重要的三个子元素是groupId, artifactId和version它们组成了Maven坐标用来唯一标识一个项目或者一个构件。 POM文件中还可以定义一些其他的子元素例如 packaging: 项目的打包类型如jar, war, ear等。dependencies: 项目所依赖的其他构件可以指定依赖的范围、类型、可选性等属性。parent: 项目的父项目可以继承父项目的一些配置信息。dependencyManagement: 项目的依赖管理可以统一管理依赖的版本号等信息。modules: 项目的子模块可以将一个大型项目拆分为多个子模块方便管理和协作。properties: 项目的自定义属性可以在POM文件中使用${name}引用。build: 项目的构建设置包括插件、目标、资源等信息。reporting: 项目的报告生成设置包括插件、输出目录等信息。name, description, url等: 项目的更多信息用于描述项目的名称、简介、网址等内容。 !-- project元素是pom文件的根元素 -- project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd!-- modelVersion元素指定了pom文件使用的Maven模型版本固定为4.0.0 --modelVersion4.0.0/modelVersion!-- groupId, artifactId和version元素组成了Maven坐标用来唯一标识一个项目或者一个构件 --groupIdcom.example/groupIdartifactIdmy-app/artifactIdversion1.0-SNAPSHOT/version!-- packaging元素指定了项目的打包类型如jar, war, ear等 --packagingjar/packaging!-- name, description, url等元素用于描述项目的名称、简介、网址等内容 --nameMy App/namedescriptionA simple app for demonstration/descriptionurlhttp://www.example.com/my-app/url!-- parent元素指定了项目的父项目可以继承父项目的一些配置信息 --parentgroupIdcom.example/groupIdartifactIdmy-parent/artifactIdversion1.0/version!-- relativePath元素指定了父项目pom文件的相对路径如果不指定默认为../pom.xml --relativePath../my-parent/pom.xml/relativePath/parent!-- properties元素定义了项目的自定义属性可以在pom文件中使用${name}引用 --properties!-- 例如定义了Java编译器的版本为1.8 --maven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target!-- 也可以定义一些其他的属性如依赖的版本号等 --junit.version5.7.2/junit.versionlog4j.version2.14.1/log4j.version/properties!-- repositories元素定义了项目所使用的远程仓库可以指定仓库的ID、名称、URL等信息 --!-- 远程仓库可以提供项目所依赖的构件也可以用于发布项目生成的构件 --repositories!-- 例如定义了一个名为central的远程仓库它是Maven默认使用的仓库提供了大量的开源构件 --repositoryidcentral/idnameMaven Central Repository/nameurlhttps://repo.maven.apache.org/maven2//url!-- releases和snapshots元素指定了仓库是否支持发布或者获取正式版或者快照版的构件 --!-- enabled元素指定了是否启用该仓库默认为true --!-- updatePolicy元素指定了更新策略如always, never, daily等 --!-- checksumPolicy元素指定了校验和策略如ignore, fail, warn等 --releasesenabledtrue/enabledupdatePolicynever/updatePolicychecksumPolicywarn/checksumPolicy/releasessnapshotsenabledfalse/enabledupdatePolicynever/updatePolicychecksumPolicywarn/checksumPolicy/snapshots/repository!-- 其他仓库可以按需添加 --/repositories!-- dependencies元素定义了项目所依赖的其他构件可以指定依赖的范围、类型、可选性等属性 --dependencies!-- 例如依赖于JUnit测试框架范围为test表示只在测试时使用 --dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion${junit.version}/versionscopetest/scope/dependency!-- 其他依赖可以按需添加 --/dependencies!-- build元素定义了项目的构建设置包括插件、目标、资源等信息 --build!-- finalName元素定义了项目打包后的文件名默认为${artifactId}-${version} --finalNamemy-app-1.0/finalName!-- plugins元素定义了项目使用的插件可以指定插件的版本、配置、目标等信息 --!-- 插件可以执行一些特定的任务如编译、打包、测试、部署等 --plugins!-- 例如使用maven-compiler-plugin插件来编译Java源代码 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactId!-- version元素指定了插件的版本号 --version3.8.1/version!-- configuration元素指定了插件的配置信息 --configuration!-- source和target元素指定了Java编译器的版本也可以使用properties中定义的属性 --!--source${maven.compiler.source}/source--!--target${maven.compiler.target}/target--!-- encoding元素指定了Java源代码的编码格式 --encodingUTF-8/encoding/configuration/plugin/plugins/build /projectMaven生命周期 Maven插件 Maven插件是一些用来执行特定任务的软件组件它们可以在Maven的生命周期阶段中被调用也可以直接通过命令行来执行。Maven插件的工作原理是它们接收一些配置参数然后根据这些参数来完成一些操作如编译、打包、测试、部署等。Maven插件通常由一个或多个目标goal组成每个目标都对应一个具体的功能。 Maven插件有两种类型构建插件build plugins和报告插件reporting plugins。构建插件在构建过程中执行并在pom.xml的build元素中配置。报告插件在网站生成过程中执行并在pom.xml的reporting元素中配置。 Maven提供了很多内置的插件如maven-compiler-plugin, maven-jar-plugin, maven-war-plugin等它们分别用于编译Java源代码打包JAR文件打包WAR文件等。除了内置的插件还有很多第三方提供的插件如maven-shade-plugin, maven-checkstyle-plugin, maven-surefire-plugin等它们分别用于创建Uber-JAR文件检查代码风格运行单元测试等 二、Spring介绍 2.1Spring boot Spring Boot 是一个基于 Spring Framework 的项目它可以让您更容易和更快地创建和运行简单或者基于 web 的应用程序。它是一个 Spring 模块提供了 RAD (快速应用开发) 的特性。Spring Boot 可以根据您的类路径和配置的 bean自动添加一些缺失的组件和设置。 Starter功能 内嵌Tomcat、Jetty或Undertow采用Starter POM简化Maven的配置提供产品级的运行监控功能 Starter原理 相关配置 在POM文件中定义继承Spring-boot-starter-parent parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.1.6.RELEASE/version relativePath/ !-- Lookup parent from repository -- / parent在插件中采用SpringBoot的插件来编译打包应用 build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /buildSpringBootApplication是一个复合注解         Target(ElementType.TYPE)         Retention(RetentionPolicy.RUNTIME)         Documented         Inherited         Configuration         EnableAutoConfiguration         ComponentScan         interface Configuration 注解实现配置文件的功能. EnableAutoConfiguration打开自动配置的功能也可以关闭某个自动配置的选项如关闭数据源自动配置功能 SpringBootApplication(exclude  { DataSourceAutoConfiguration.class }). ComponentScanSpring组件扫描. SpringBoot使用一个全局的配置文件application.properties或者application.yml(或者是yaml)         作用是修改SpringBoot自动配置的默认值 Actuator Spring 的Actuator是一个用于监控和管理Spring Boot应用的模块它提供了一系列的端点endpoints可以通过HTTP或JMX来访问。通过这些端点我们可以获取应用的运行状态、健康状况、配置信息、性能指标、日志信息等。  Actuator的使用非常简单只需要在pom.xml中添加spring-boot-starter-actuator依赖就可以开启Actuator的功能。默认情况下Actuator只会暴露两个端点/actuator/health和/actuator/info分别用于查看应用的健康情况和基本信息。如果要暴露更多的端点需要在application.properties中进行配置。 2.2RESTful API RESTful API是一种遵循REST原则的应用程序接口REST是一种软件架构风格它定义了网络服务之间和客户端之间应该如何通信。RESTful API使用HTTP方法如GET, POST, PUT, 和DELETE来对资源进行操作资源由统一资源标识符URI来标识。RESTful API还支持不同的数据交换格式如JSON, XML, 或纯文本。RESTful API的目标是简单、可扩展、无状态、和统一的。 使用RESTful API的一些好处有 它易于理解和实现因为它使用了标准的HTTP协议和常见的数据格式。它灵活和可扩展因为它允许开发者根据自己的需求选择最合适的工具和技术。它互操作和兼容因为它可以与任何支持HTTP和数据格式的系统通信。它高性能和可靠因为它可以利用HTTP的特性如缓存、压缩、和并发。 URL构成 RESTful操作 HTTP五种操作 Get请求 Post请求  Put请求  DELETE请求 2.3Spring MVC  Spring MVC是一个基于Java的Web框架它遵循模型-视图-控制器MVC的设计模式。它实现了Spring框架的核心功能如控制反转、依赖注入等。Spring MVC通过使用DispatcherServlet来优雅地实现MVC模式。DispatcherServlet是一个类它接收来自客户端的请求并将其转发给合适的处理器如控制器、模型、视图等 Spring MVC中的Controller负责接收HTTP Request 交给View生成HTML页面 传统的方式直接把数据写入到Http Response中Restful RestFul Controller的注解 RestController 是 Spring Framework 中用于创建 RESTful web services 的注解。它是一个方便的注解将 Controller 和 ResponseBody 注解结合在一起从而无需在控制器类的每个请求处理方法上使用 ResponseBody 注解  RestController 与Controller标签相同用于标注在类定义前面使得类会被认定为Controller对象用于告知Spring容器该类所有方法的返回值需要以JSON格式写到Response的Body内。 2.4基于javax.validation的合法性检查 javax.validation是一套JavaBean参数校验的标准它定义了很多常用的校验注解1。这些注解可以直接加在JavaBean的属性上以便在需要校验的时候进行校验2。在Spring Boot中可以使用Valid注解来启用参数校验1。如果您需要自定义校验注解可以使用Hibernate Validator 2.5跨域访问 跨源资源共享CORS是一种基于HTTP头的机制它通过允许服务器标识除了它自己以外的其他源域、协议或端口使得浏览器允许这些源访问加载自己的资源1。CORS机制允许Web应用服务器进行跨源访问控制从而使跨源数据传输得以安全进行1。现代浏览器支持在API容器中例如XMLHttpRequest或Fetch使用CORS以降低跨源HTTP请求所带来的风险,在Spring Boot中可以使用addCorsMappings()方法来添加CORS映射 2.6 Tomcat并发原理 Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式。其中bioblocking I/O阻塞式I/O操作是表示Tomcat使用的是传统的Java I/O操作即java.io包及其子包 nionon-blocking I/O非阻塞式I/O操作是一种基于缓冲区、并能提供非阻塞I/O操作的Java API它拥有比传统I/O操作BIO更好的并发运行性能. 在Tomcat中可以使用org.apache.coyote.http11.Http11NioProtocol协议来启用NIO模式
http://www.zqtcl.cn/news/982030/

相关文章:

  • 手机端网站欣赏wordpress 文章rss
  • 做网站一定要实名认证吗国外免费空间网站申请
  • 阿里云网站空间主机长春网站建设设计
  • 龙华网站建设yihekj长沙招聘网站制作
  • 网站怎么做文本跳出来网络规划设计师有用吗
  • 室内设计网站官网大全中国那些企业做网站做得好
  • 状态管理名词解释网站开发网络营销推广方案案例
  • 做网站需要几大模板河南中国建设信息网
  • 成都温江网站建设空间网页版
  • 做美股的数据网站邢台网站建设公司哪家好一点
  • 青岛即墨网站开发查询建设用地规划许可证在哪个网站
  • 成都APP,微网站开发芜湖企业100强
  • 江门搜索引擎网站推广网约车多少钱一辆
  • 北京高端网站建设宣传请人做软件开发的网站
  • h网站建设长沙本地公众号
  • 苏州工业园区劳动局网站做不了合同建域名做网站
  • 内蒙古建设兵团网站组建网站开发团队
  • 劳务派遣做网站的好处广州最新新闻事件
  • 海兴网站建设公司网站建设原则
  • 网站建设完不管了自己怎么接手wordpress个人主页
  • 具有品牌的网站建设霞浦建设局网站
  • 推荐个网站免费的wordpress force ssl
  • app网站搭建做英文网站的心得
  • 东莞企业网站制作推广运营多样化的网站建设公司
  • 深圳做网站那里好提交网址给百度
  • 泰州企业建站系统中企动力科技做什么的
  • 唐山公司网站建设 中企动力唐山宽带动态ip如何做网站访问
  • 个人商城网站怎么做电商网站及企业微信订烟
  • 温州市网站优化广告平面设计教程
  • 南通制作网站的有哪些公司吗sae 部署wordpress