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

手机访问pc网站自动跳转手机端网站代码做网站 赚钱多吗

手机访问pc网站自动跳转手机端网站代码,做网站 赚钱多吗,管理网站开发,东莞阳光网招聘一、Spring 在中型项目中的魅力展现 Spring 框架以其强大的功能和灵活性#xff0c;在中型项目中发挥着重要作用。它不仅简化了开发过程#xff0c;还提高了代码的可维护性和可扩展性。 Spring 在中型项目中魅力十足#xff0c;其优势主要体现在以下几个方面。 首先#…一、Spring 在中型项目中的魅力展现 Spring 框架以其强大的功能和灵活性在中型项目中发挥着重要作用。它不仅简化了开发过程还提高了代码的可维护性和可扩展性。 Spring 在中型项目中魅力十足其优势主要体现在以下几个方面。 首先Spring 框架的依赖注入机制极大地简化了开发过程。通过依赖注入开发人员无需手动创建对象并管理它们之间的依赖关系而是由 Spring 容器负责对象的创建和注入。这使得代码更加简洁、易于理解和维护。例如使用 Java 和 Spring 重构服务之间的依赖关系可以采用依赖注入的方式将服务之间的依赖关系从代码中解耦出来使得代码更加灵活和可测试。Spring 框架提供了依赖注入的支持可以通过配置文件或注解的方式来实现。 其次Spring 框架大量运用了设计模式提高了代码的可维护性和可扩展性。设计模式是面向对象设计的通用解决方案用于解决软件开发过程中的常见问题。Spring 框架在设计时大量借鉴和使用了设计模式例如 IoC 容器实现了依赖注入这是工厂模式和控制反转模式的结合。Spring 的配置文件和注解也体现了工厂模式和单例模式的思想。通过这种方式Spring 框架不仅简化了应用程序的开发过程还提高了代码的可维护性和可扩展性。例如在 Mybatis 中SqlSession 是一个接口定义了对数据库的一大堆基本操作。创建 DefaultSqlSession 的过程比较复杂如果每个需要 DefaultSqlSession 的实例的调用者都需要写这么一大串代码那得写多少重复代码万一创建过程有改动我们得改多少个地方所以我们会很自然的想到把它抽到一个公共的地方每次需要他就去公共的地方拿就行了。即使有改动也只需改动这个公共方法即可。这就是工厂模式的体现。 此外Spring 框架还提供了丰富的 API 和模块化的组件可以快速构建出复杂的应用程序。其中最核心的组件是 Spring Core它提供了依赖注入和面向切面编程等基础机制使得我们可以更加轻松地管理对象之间的关系从而降低代码的耦合度和复杂度。此外Spring 还提供了许多有用的模块例如 Spring MVC、Spring Data、Spring Security 等可以帮助我们快速实现 Web 应用程序、访问数据库、处理安全问题等。 总之Spring 框架在中型项目中具有强大的魅力它简化了开发过程提高了代码的可维护性和可扩展性为开发人员提供了丰富的 API 和模块化的组件是中型项目开发的理想选择。 二、Spring 的核心特性 1. 控制反转与依赖注入 介绍控制反转的概念即创建对象的控制权反转到 Spring 框架上。 控制反转Inversion of Control缩写为 IoC是面向对象编程的一种设计原则可以用来减低计算机代码之间的耦合度。常见的方式叫做依赖注入Dependency Injection简称 DI还有一种方式叫依赖查找。通过控制反转对象在被创建的时候由一个调控系统内所有对象的外界实体将其依赖的对象的引用传递给它。也可以说依赖被注入到对象中。 阐述依赖注入的实现方式减少程序之间的耦合性。 当某个角色可能是一个 Java 实例调用者需要另一个角色另一个 Java 实例被调用者的协助时在传统的程序设计过程中通常由调用者来创建被调用者的实例。但在 Spring 里创建被调用者的工作不再由调用者来完成因此称为控制反转创建被调用者实例的工作通常由 Spring 容器来完成然后注入调用者因此也称为依赖注入。依赖注入有两种设值注入、构造注入。所谓依赖注入是指程序运行过程中如果需要调用另一个对象协助时无须在代码中创建被调用者而是依赖于外部的注入。Spring 的依赖注入对调用者和被调用者几乎没有任何要求完全支持对 POJO 之间依赖关系的管理。 Spring 常用的三种依赖注入方式主要有 基于注解的注入使用注解注册 bean有四种注解可以注册 bean每种注解可以任意使用只是语义上有所差异Component、Repository、Controller、Service。装配 bean 时常用的注解有Resource和Autowired。 构造方法注入在接受注入的类中定义一个构造方法并在参数中定义需要注入的元素。 set 注入通过 set 方法set 某一个具体实现类或者在 xml 配置文件中配置。 2. Import 的妙用 讲解如何通过 Import 注解引入普通类和配置类。 在 Spring 框架中Import注解用于导入其他配置类或普通类以便将它们注册为 Spring 上下文中的 Bean。 导入普通类导入普通类非常简单只需在Import传入类的 Class 对象即可。 导入Configuration配置类导入配置类与导入普通类一样在Import注解中传入目标类的 Class 对象。 导入多个类可以通过数组的方式一次性导入多个类。 使用ImportSelectorImport还可以使用ImportSelector接口来动态选择要导入的类。 使用ImportBeanDefinitionRegistrarImport注解的另一种用法是导入实现了ImportBeanDefinitionRegistrar接口的类。这种方式允许你在注册 Bean 的过程中自定义 Bean 的定义通常用于更复杂的场景。 说明引入 Configuration 注解的配置类的复杂性。 本章节我们来探索 Spring 中一个常用的注解Configuration。我们先来了解一下该注解的作用是用来定义当前类为配置类。加了Configuration的配置类内部都会包含一个或多个Bean注解的方法。Spring 会保证多次调用Bean标注的工厂方法不会重复产生新的对象始终是同一个这也贯彻了 Spring 的单例哲学。Spring 对Configuration标识的类做了代理从而进行功能的增强。对Configuration的解析过程是在 spring 扫描类的时候进行的。Spring 把加了Configuration注解的称为全配置类其他的称为半配置类两者判别标准是是否加了Configuration注解。 3. Conditional 注解家族 介绍 ConditionalOnClass、ConditionalOnBean、ConditionalOnProperty 等注解的强大之处。 在 Spring Boot 中Conditional注解及其派生注解为开发者提供了强大的条件化配置能力。这些注解允许我们根据特定条件来决定是否加载某个配置或创建某个 Bean。 ConditionalOnClass当类路径上存在指定类时条件成立。 ConditionalOnMissingClass当类路径上不存在指定类时条件成立。 ConditionalOnBean当指定的 Bean 存在时条件成立。 ConditionalOnMissingBean当指定的 Bean 不存在时条件成立。 ConditionalOnProperty当指定的属性有指定的值时条件成立。 讲解自定义 Conditional 注解的步骤。 假设我们想要基于某个自定义属性来决定是否加载某个配置我们可以创建一个自定义的 Condition 实现。 首先创建一个自定义的 Condition 类实现 Condition 接口并覆盖 matches 方法。在这个方法中检查自定义属性是否满足条件。然后在配置类中使用Conditional(CustomCondition.class)注解来指定这个条件。 三、Spring 在中型项目中的实践心得 1. Mapper 标签及 resultmap 的使用 解释 Mapper 标签中 namespace、id、parameterType、resultType 等属性的作用。 在 MyBatis 中Mapper 标签是用于定义 SQL 语句映射的重要元素。其中namespace属性用于指定 Mapper 接口的全限定名它将 Mapper XML 文件与对应的接口关联起来。id属性用于唯一标识 Mapper 中的一个具体 SQL 语句或方法在调用时通过这个 id 来找到对应的 SQL 语句进行执行。parameterType属性指定传入 SQL 语句的参数类型可以是基本数据类型、自定义类或集合类型等。resultType属性则定义了 SQL 查询结果的返回类型同样可以是基本数据类型、自定义类或集合类型等。 说明如何使用 resultmap 自定义映射关系。 ResultMap 是 MyBatis 中用于自定义结果映射的重要工具。它允许开发者精确地控制数据库查询结果如何映射到 Java 对象的属性上。例如当数据库表结构和 Java 对象的属性名称不完全一致时可以使用 ResultMap 进行自定义映射。假设我们有一个用户表和一个对应的 Java 对象User如果数据库中的字段名是user_name而 Java 对象中的属性名是username我们可以通过 ResultMap 来建立这种映射关系。首先在 Mapper XML 文件中定义一个 ResultMap resultMap idUserResultMap typeUser result columnuser_name propertyusername/ /resultMap 然后在 SQL 语句中使用这个 ResultMap select idfindUserById resultMapUserResultMap SELECT * FROM users WHERE id #{id} /select 这样当执行这个查询时MyBatis 会根据 ResultMap 的定义将数据库查询结果正确地映射到User对象的username属性上。 2. SpringMVC 的工作原理及流程 介绍 SpringMVC 围绕 DispatcherServlet 的工作原理。 SpringMVC 中的DispatcherServlet是整个框架的核心组件它充当前端控制器的角色负责接收所有的 HTTP 请求并协调各个组件对请求进行处理。当一个请求到达服务器时DispatcherServlet首先会拦截这个请求。然后它会调用HandlerMapping处理器映射器来查找能够处理这个请求的控制器Controller。HandlerMapping会根据请求的 URL 等信息找到对应的处理器通常是一个标注了Controller注解的类中的方法并生成一个HandlerExecutionChain对象返回给DispatcherServlet。这个对象包含了处理器和可能的拦截器。接着DispatcherServlet会使用HandlerAdapter处理器适配器来调用处理器方法。HandlerAdapter会将请求和响应对象传递给处理器处理器执行相应的业务逻辑并返回一个ModelAndView对象这个对象包含了视图名和模型数据。最后DispatcherServlet会根据ModelAndView对象选择合适的ViewResolver视图解析器来解析视图名找到具体的视图如 JSP、Thymeleaf 模板等进行渲染并将结果返回给客户端。 阐述 DispatcherServlet 对请求的处理顺序。 当一个请求到达DispatcherServlet时处理顺序如下 首先DispatcherServlet拦截请求。 接着调用HandlerMapping根据请求的 URL 查找相应的处理器和可能的拦截器生成HandlerExecutionChain对象并返回。 然后使用HandlerAdapter调用处理器方法将请求和响应对象传递给处理器。处理器执行业务逻辑后返回ModelAndView对象。 之后DispatcherServlet将ModelAndView对象传递给ViewResolver进行视图解析将逻辑视图名转换为具体的视图对象。 最后DispatcherServlet对视图进行渲染将模型数据填充至视图中并将结果返回给客户端。 3. Spring 常见概念介绍 介绍 Spring 的组成部分如 Spring Core、Spring Context、Spring AOP 等。 Spring 是一个功能强大的 Java 开发框架由多个重要的组成部分构成。 Spring Core这是 Spring 框架的核心部分提供了依赖注入DI和控制反转IoC等基础机制。依赖注入使得开发人员无需手动创建对象并管理它们之间的依赖关系而是由 Spring 容器负责对象的创建和注入极大地简化了开发过程。控制反转则将对象的创建和管理的控制权从应用程序代码转移到了 Spring 框架提高了代码的可维护性和可扩展性。 Spring Context提供了一种配置和管理应用程序上下文的方式。它扩展了核心容器增加了对国际化i18n、事件传播、资源加载等功能的支持。通过 Spring Context可以方便地加载和管理应用程序中的各种资源如配置文件、数据库连接等。 Spring AOP面向切面编程AOP是一种编程范式它允许开发人员将横切关注点如日志记录、事务管理、安全检查等从业务逻辑中分离出来。Spring AOP 实现了 AOP 的功能通过代理模式和字节码增强技术在不修改业务代码的情况下将横切关注点织入到业务逻辑中提高了代码的可维护性和可复用性。 讲解 IOC 与 DI 的概念及实现方式。 IOCInversion of Control控制反转是一种设计原则它将对象的创建和依赖关系的管理交给框架在 Spring 中就是 Spring 容器来完成而不是由应用程序代码直接管理。在传统的编程方式中对象的创建和依赖关系的管理通常由应用程序代码自己负责这会导致代码的耦合度较高难以维护和扩展。而在 IOC 的模式下应用程序代码只需要关注业务逻辑而不需要关心对象的创建和依赖关系的管理这使得代码更加简洁、易于理解和维护。 DIDependency Injection依赖注入是实现 IOC 的一种方式。它通过将依赖对象注入到需要它们的对象中实现了对象之间的解耦。在 Spring 中依赖注入可以通过构造函数注入、setter 方法注入和字段注入等方式实现。例如通过构造函数注入时在接受注入的类中定义一个构造函数并在参数中定义需要注入的元素Spring 容器在创建对象时会自动调用这个构造函数并将依赖对象传递给它。通过 setter 方法注入时在需要注入的类中定义一个 setter 方法用于接收依赖对象Spring 容器在创建对象后会调用这个 setter 方法将依赖对象注入到对象中。通过字段注入时直接在类的字段上使用注解如AutowiredSpring 容器在创建对象时会自动将依赖对象注入到这个字段中。 四、Spring 与策略模式的结合 以平台策略模式工厂类为例展示如何将策略模式与 Spring 结合应用于项目中。 在实际项目中策略模式可以与 Spring 框架很好地结合以提高代码的可维护性和可扩展性。例如在一个电商平台中可能需要根据不同的用户类型普通用户、VIP 用户、超级 VIP 用户等采取不同的折扣策略。我们可以使用策略模式来实现这个功能。 首先定义一个折扣策略接口DiscountStrategy public interface DiscountStrategy { double calculateDiscount(double price); } 然后实现不同的折扣策略类 Component public class NormalUserDiscountStrategy implements DiscountStrategy { Override public double calculateDiscount(double price) { return price * 0.95; } } Component public class VIPUserDiscountStrategy implements DiscountStrategy { Override public double calculateDiscount(double price) { return price * 0.9; } } Component public class SuperVIPUserDiscountStrategy implements DiscountStrategy { Override public double calculateDiscount(double price) { return price * 0.8; } } 接下来创建一个策略模式工厂类DiscountStrategyFactory Component public class DiscountStrategyFactory { Autowired private MapString, DiscountStrategy strategyMap; public DiscountStrategy getBy(String strategyName) { return strategyMap.get(strategyName); } } 在业务代码中可以通过以下方式使用策略模式和 Spring Autowired private DiscountStrategyFactory discountStrategyFactory; public double getDiscountedPrice(double originalPrice, String userType) { DiscountStrategy strategy discountStrategyFactory.getBy(userType); if (strategy! null) { return strategy.calculateDiscount(originalPrice); } return originalPrice; } 介绍 Spring 配置文件在策略模式中的作用。 Spring 配置文件在策略模式中起着重要的作用。它可以帮助我们将不同的策略类注册为 Spring 容器中的 Bean并且可以通过配置文件来灵活地选择和切换不同的策略。 例如在上面的电商平台折扣策略的例子中我们可以在 Spring 配置文件中配置不同的策略类 beans bean idnormalUserDiscountStrategy classcom.example.NormalUserDiscountStrategy/ bean idvipUserDiscountStrategy classcom.example.VIPUserDiscountStrategy/ bean idsuperVIPUserDiscountStrategy classcom.example.SuperVIPUserDiscountStrategy/ bean iddiscountStrategyFactory classcom.example.DiscountStrategyFactory/ /beans 通过这种方式Spring 容器会自动将这些策略类实例化并注入到DiscountStrategyFactory中。在业务代码中我们只需要通过DiscountStrategyFactory来获取相应的策略类而不需要手动创建和管理这些策略类的实例。这样可以大大提高代码的可维护性和可扩展性并且可以通过修改配置文件来轻松地切换不同的策略。 五、Spring 的国际化实现 解释国际化的概念及原理。 国际化Internationalization通常简称为 i18n是指为了适应不同语言、文化和地区的用户使软件能够方便地进行本地化修改的过程。在 Spring 中国际化主要通过 MessageSource 和 LocaleResolver 这两个核心组件来实现。MessageSource 负责加载并解析资源文件根据不同的语言和代码返回相应的消息。LocaleResolver 则用于解析用户的语言偏好确定要使用哪个语言。 Spring 的国际化实现原理是将应用程序中的文本、标签、消息等资源抽取出来存放在不同语言的资源文件中。每个资源文件对应一种语言通常命名为 messages_语言代码.properties 的格式。当应用程序运行时根据用户的语言偏好通过 LocaleResolver 确定要使用的语言然后由 MessageSource 从相应的资源文件中加载并返回对应的消息。这样应用程序就可以根据用户的语言偏好自动切换语言实现国际化。 阐述如何通过 MessageSource 和 LocaleResolver 实现国际化。 在 Spring 中MessageSource 和 LocaleResolver 是实现国际化的关键组件。 MessageSource ApplicationContext 接口扩展了 MessageSource 接口提供了国际化功能。Spring 还提供了 HierarchicalMessageSource 接口可以分层解析消息。这些接口定义的方法包括 String getMessage(String code, Object[] args, String default, Locale loc)用于从 MessageSource 获取消息的基本方法。如果在指定的本地没有找到消息则使用默认消息。通过标准库提供的 MessageFormat 功能传入的任何参数都会成为替换值。 String getMessage(String code, Object[] args, Locale loc)与前一种方法基本相同但有一点不同不能指定默认信息。如果找不到信息就会抛出 NoSuchMessageException 异常。 String getMessage(MessageSourceResolvable resolvable, Locale locale)前面方法中使用的所有属性也都封装在一个名为 MessageSourceResolvable 的类中你可以使用该方法。 Spring 容器在初始化过程中会从容器中查找 MessageSource 类型的 Bean。并且该 Bean 的名称必须是 messageSource。如果找到了这样一个 Bean对前面方法的所有调用都会委托给消息源。如果没有找到消息源ApplicationContext 会尝试查找包含同名 Bean 的父类。如果找到了它就会使用该 bean 作为消息源。如果 ApplicationContext 无法找到任何消息源则会实例化一个空的 DelegatingMessageSource以便能够接受对上述方法的调用。 例如可以通过以下方式配置 MessageSource Bean(AbstractApplicationContext.MESSAGE_SOURCE_BEAN_NAME) public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource new ReloadableResourceBundleMessageSource(); // 这里设置的是 basenamemessage 是文件的前缀不是包 messageSource.addBasenames(classpath:com/pack/main/databinder/message); return messageSource; } 在包 com/pack/main/databinder 下建立多个文件分别如 message_zh_CN.properties 和 message_en_US.properties。文件内容如下 message_zh_CN.properties #姓名必须填写 user.name.empty\u59D3\u540D\u5FC5\u987B\u586B\u5199 message_en_US.properties user.name.emptyname is required 调用方式如下 try (AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class)) { // Locale.CHINA 或者 Locale.US System.out.println(context.getMessage(user.name.empty, null, Locale.CHINA)); } LocaleResolver Spring 为我们提供了多种 LocaleResolver 的实现如 CookieLocaleResolver 和 SessionLocaleResolver。以 CookieLocaleResolver 为例可以通过设置 cookie 的过期时间使得在 cookie 有效期内的会话都能保持用户的语言偏好。 !-- 基于 Cookie 的本地化解析器 -- bean idlocaleResolver classorg.springframework.web.servlet.i18n.CookieLocaleResolver property namecookieMaxAge value604800/ property namedefaultLocale valuezh_CN/ property namecookieName valueLanguage/ /bean 在业务代码中可以通过注入 LocaleResolver 来切换语言。例如 Autowired CookieLocaleResolver resolver; RequestMapping(language) public ModelAndView language(HttpServletRequest request, HttpServletResponse response, String language) { language language.toLowerCase(); if (language null || language.equals()) { return new ModelAndView(redirect:/); } else { if (language.equals(zh_cn)) { resolver.setLocale(request, response, Locale.CHINA); } else if (language.equals(en)) { resolver.setLocale(request, response, Locale.ENGLISH); } else { resolver.setLocale(request, response, Locale.CHINA); } } return new ModelAndView(redirect:/); } 六、Spring 在微服务架构中的应用 介绍微服务架构的特点及优势。 微服务架构具有诸多特点和优势主要包括以下几点 可扩展性在增加业务响应能力时单一架构需要进行整体扩容而微服务架构仅需要扩容响应能力不足的微服务节点。在增加业务功能时单一应用架构需要在原先架构的代码基础上做比较大的调整而微服务架构只需要增加新的微服务节点并调整与之有关联的微服务节点即可。 容错性在系统发生故障时单一应用架构需要进行整个系统的修复涉及到代码的变更和应用的启停而微服务架构仅仅需要针对有问题的服务进行代码的变更和服务的启停。其他服务可通过重试、熔断等机制实现应用层面的容错。 技术选型灵活微服务架构下每个微服务节点可以根据完成需求功能的不同自由选择非常适合的技术栈即使对单一的微服务节点进行重构成本也非常低。 开发运维效率更高每个微服务节点都是一个单一进程都专注于单一功能并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低每个微服务可由一个小规模团队或者个人完全掌控易于保持高可维护性和开发效率。 讲解 Spring Cloud 在微服务中的技术选型和主流组件。 Spring Cloud 作为强大的微服务架构开发工具提供了一系列组件和工具来简化微服务架构的开发、部署和管理。 服务注册与发现 EurekaNetflix 开源的服务注册与发现工具通过服务的注册和查找实现服务的自动化。适合需要动态服务发现的系统。 Consul支持多种场景的服务发现和配置具有健康检查、键值存储等附加功能。 Zookeeper适合需要高可用性和 CAP 理论中 CP 特性的分布式系统。 分布式配置管理 Spring Cloud Config提供集中化的外部配置管理支持 Git、SVN 等版本控制系统轻松应对不同环境的配置管理。 客户端负载均衡 Ribbon提供基于 Http 和 Tcp 的负载均衡功能支持多种负载均衡策略如轮询、随机等并可以与 Eureka 集成。 Spring Cloud LoadBalancer在 Spring Cloud Hoxton 版引入更现代的替代品与 Spring 对于响应式和阻塞式 Web 客户端的整体战略相结合。 断路器 Hystrix原为 Netflix 的开源项目提供了弹性和控制延迟故障的能力。适用于需要监控和故障恢复的系统。 Resilience4j作为 Hystrix 的继任者以其更轻量和现代化架构逐渐取代 Hystrix 在 Spring 生态下的使用。 API 网关 Spring Cloud Gateway现代化设计的 API 网关替代 Zuul 1以其非阻塞和高度扩展性支持复杂的路由与过滤规则。 Zuul最初也是 Netflix 提供的解决方案适合简单的路由和过滤需求。 分布式追踪 Sleuth 和 Zipkin提供对分布式服务调用的跟踪和可视化希望深入监控单个请求的调用链分析。 Jaeger在分布式追踪和性能监控领域提供了一个全面系统化的解决方案。 七、Spring 在中型项目中的优势 列举 Spring 在中型项目中的优势如支持测试驱动开发、插件化结构等。 Spring 在中型项目中具有诸多优势。首先它支持测试驱动开发这使得开发人员能够在编写产品代码之前先编写测试用例确保代码的正确性和可靠性。正如写作素材中提到的测试驱动开发可以有效提高代码质量让程序开发人员开发出更高品质、经过完整测试的程序。同时Spring 还具有类似 USB 接口的插件化结构如 Spring Boot 的插件化开发功能极大地提升了系统的扩展性和灵活性。插件化开发允许开发人员将应用程序的不同功能模块打包为独立的插件可以动态地加载和卸载这些插件实现了真正的动态扩展和无痛升级。此外Spring 的插件化结构还可以实现服务模块之间的解耦提升系统的可定制化、个性化程度方便第三方接入并且增强了系统的扩展性和开放性。 说明何时适合使用 Spring 框架。 一般来说中型项目比较适合使用 Spring 框架。在中型项目中Spring 框架可以发挥其强大的功能和优势简化开发过程提高代码的可维护性和可扩展性。Spring 框架的插件化结构和支持测试驱动开发等特性使得开发人员能够更加高效地开发和维护中型项目。此外Spring 框架还具有相对容易升级、事务管理服务基于 AOP等优点能够满足中型项目的复杂需求。而对于小型项目可能使用 Spring 框架会显得有些繁琐对于大型项目虽然也可以使用 Spring 框架但可能需要结合其他更强大的框架来满足复杂的业务需求。总之中型项目是 Spring 框架发挥优势的理想场景。 八、Spring 在中型项目中的应用案例 1. Spring Cloud 在中小型项目中的应用 介绍 Spring Cloud 的服务发现、断路器、智能路由等组件。 Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集它提供了一系列组件来简化微服务架构的开发、部署和管理。其中服务发现、断路器和智能路由是其核心组件之一。 服务发现组件如 Eureka、Consul 等用于管理微服务的注册和发现。当微服务启动时它会向服务发现组件注册自己的服务地址和端口等信息。其他微服务可以通过服务发现组件获取到所需服务的地址信息从而实现服务之间的通信。服务发现组件使得微服务架构中的服务可以动态地加入和退出提高了系统的可扩展性和灵活性。 断路器组件如 Hystrix、Resilience4j 等用于处理微服务架构中的故障。当一个微服务出现故障时断路器可以快速地切断对该服务的调用避免故障扩散到其他服务。同时断路器还可以提供降级策略当服务不可用时返回一个预设的默认值或者执行一个备用的逻辑提高了系统的可靠性和稳定性。 智能路由组件如 Zuul、Spring Cloud Gateway 等用于实现微服务架构中的请求路由和过滤。智能路由组件可以根据请求的 URL、HTTP 方法、请求头信息等条件将请求转发到不同的微服务上。同时智能路由组件还可以实现一些通用的功能如身份验证、访问控制、日志记录等提高了系统的安全性和可维护性。 讲解如何搭建 eureka-server、config-server 和服务提供者服务。 搭建 eureka-server 修改 build.gradle 文件如果是 Maven 项目请对应的修改 pom.xml添加 Spring Cloud Eureka Server 的依赖。 修改 application.yml配置 Eureka Server 的相关参数如端口号、服务注册地址等。 修改程序的主类添加EnableEurekaServer注解然后运行 main 方法。 搭建 config-server 修改 build.gradle 文件添加 Spring Cloud Config Server 的依赖。 修改 application.yml 文件配置 Config Server 的相关参数如端口号、配置文件路径等。 修改启动类添加相应的注解因为要注册到 eureka-server 上所以需要EnableEurekaClient这个注解。 搭建服务提供者服务 修改 build.gradle 文件添加服务提供者所需的依赖如 Spring Web、Spring Data JPA 等。 编写服务提供者的代码提供相应的接口如获取单个用户的信息和获取一个用户列表。 配置 application.yml 和 bootstrap.yml 文件配置服务提供者的相关参数如端口号、服务名称、Eureka 地址等。 2. 15 款 Spring 开源项目脚手架推荐 推荐 15 款优质开源的 Spring Boot Spring Cloud 项目脚手架。 以下是 15 款优质开源的 Spring Boot Spring Cloud 项目脚手架 微人事一个前后端分离的人力资源管理系统项目采用 Spring Boot Vue 开发加入了常见的企业级应用技术点如 Redis、RabbitMQ 等。 spring-boot-pay支付服务项目支持支付宝、微信、银联等支付方式。 springboot-plus一个基于 Spring Boot 2 的管理后台系统包含用户管理、组织机构管理、角色管理等功能使用简单可完成中型、大型系统开发。 Spring-boot-seckill一个基于 Spring Boot 2 的秒杀系统包含用户管理、商品管理、订单管理等功能。 V 部落一个多用户博客管理平台采用 Vue Spring Boot 开发。 Cloud-Platform国内首个基于 Spring Cloud 微服务化开发平台具有统一授权、认证后台管理系统包含用户管理、资源权限管理、网关 API 管理等多个模块。 litemall一个小商场系统采用 Spring Boot 后端 Vue 管理员前端 微信小程序用户前端 Vue 用户移动端的架构。 jeeSpringCloud基于 Spring Boot 2.0 的后台权限管理系统界面简洁美观敏捷开发系统架构包含定时任务调度、服务器监控、平台监控等功能。 美人鱼一个系列项目目标是示范前后端分离模式下的项目组织方式前端提供浏览器、移动端、Electron 实现后端提供 Spring Boot、Spring Cloud 实现。 bootshiro基于 springboot2 shiro jwt 的真正 rest api 资源无状态认证权限管理框架开发人员无需关注权限问题后端开发完 api前端页面配置即可。 open-capacity-platform简称 ocp是基于 Spring Cloud 的企业级微服务框架兼容 spring cloud netflix 和 spring cloud alibaba优化 Spring Security 内部实现实现 API 调用的统一出口和权限认证授权中心。 悟空 CRM悟空软件长期为企业提供企业管理软件CRM/HRM/OA/ERP 等的研发、实施、营销、咨询、培训、服务于一体的信息化服务。 pig基于 Spring Cloud 2020、Spring Boot 2.5、OAuth2 的 RBAC 权限管理系统。 介绍其中几个项目的特点和技术栈。 以微人事为例其特点是前后端分离采用 Spring Boot Vue 开发加入了 Redis、RabbitMQ 等技术点。技术栈包括 前端Vue、PrimeNG、Bootstrap、Echarts、ngx-echarts、ckeditor5-angular。 后端Spring Boot、Spring Cloud、Spring Data JPA、MyBatis、Spring、Spring MVC。 以 springboot-plus 为例其特点是使用简单可以轻易完成中型、大型系统开发。技术栈包括 系统基于 Spring Boot 2.1 技术前端采用了 Layui 2.4。 数据库以 MySQL/Oracle/Postgres/SQLServer 为实例理论上是跨数据库平台。 以 Cloud-Platform 为例其特点是国内首个基于 Spring Cloud 微服务化开发平台具有统一授权、认证后台管理系统。技术栈包括 核心技术采用 Spring Boot 2.1.2 以及 Spring Cloud (Greenwich.RELEASE) 相关核心组件采用 Nacos 注册和配置中心集成流量卫兵 Sentinel前端采用 vue-element-admin 组件Elastic Search 自行集成。 3. Spring Boot 企业级真实应用案例 以企业级项目为例展示 Spring Boot 的实战应用。 以一个企业级商城项目为例展示 Spring Boot 的实战应用。该项目包含一个内容展示系统和一个后台管理系统其中功能模块包括登录认证模块、管理员模块、商品发布和管理模块、分类管理模块、搜索模块、订单管理模块、会员管理模块等。 在项目开发过程中使用 Spring Boot 分别实现各个独立的功能点比如图片上传功能、分页功能、登录功能、验证码功能等并整合多个独立的基础功能到一个完整的功能模块中最终完成各个功能模块的功能和交互开发出一个完整的商城系统。 说明本书的特色和读者收获。 本书的特色 Spring Boot 相关技术栈源码设计和内部原理解析知其然知其所以然。 大型电商全流程开发实践叩开大企之门的真理知易行难实践出真知。 全书知识点实用案例丰富细节拉满源码完备见微知著通一而晓百。 读者收获 Spring Boot 技术栈的基础使用和开发技巧。 Spring Boot 的进阶知识自动配置特性的源码解读。 Spring Boot 项目的实战开发。 为在校学生的毕业设计提供思路。 Thymeleaf 模板引擎的整合及运用。 AdminLTE3、Bootstrap4、SweetAlert、JqGrid、JQuery 等前端框架组件及控件的使用。 Spring Boot 企业级商城项目的全流程开发实践。 大型技术项目的开发、设计和统筹。
http://www.hkea.cn/news/14463058/

相关文章:

  • 建湖做网站哪家公司好全球优秀企业网站
  • 网站上传不了wordpress哈铁工程建设公司网站
  • 做二手网站有哪些问题吉林商城网站建设
  • 网站dede后台微信网站和手机网站的区别
  • 潍坊网站建设如何安卓版下载
  • 青岛城阳软件网站开发美橙网站设计
  • 济南做兼职网站六安城市网官网
  • 红板砖外贸开发网站cn 域名网站
  • 宿迁网站建设哪家专业权重查询入口
  • 做网站作业呼和浩特房产网站建设
  • 电商平台有哪些网站名中山网站优化营销
  • 网站开发定制合同商城网站开发价
  • 兰州网站建设redu许嵩做的网站
  • 佛山附近做网站的公司vps做vpn svn和网站
  • 九江做网站的公司哪里好android移动网站开发详解光盘下载
  • 一件代发应该在哪个网站上做什么样的网站快速盈利
  • 教人做美食视频网站如何网站开发
  • 免费制作自己的微网站吗中学院新校区建设专题网站
  • wordpress 在线知识库网站优化多少钱
  • 汕头市建设局造价信息网站百度云免费空间
  • 哪里有做ppt模板下载网站wordpress xydown
  • 国外效果做的好的网站广州城乡建设局
  • wordpress账号和站内网wordpress 极速模板
  • 福建中兴建设有限公司网站站优云seo优化
  • 建设部官方网站seo课
  • 电子商务书城网站建设方案无线昆明官方网站
  • html电影网站模板网站免费正能量直接进入
  • 学校网站制作html一份完整的项目计划书
  • 关于做女装的网站西地那非片有依赖性吗
  • 企业网站建设用什么电子商务网站建设与维护pdf