spring

Spring MVC与模版 thymeleaf 开发网站

February 25, 2020
spring

一个简单的 controller 指向一个模版 # 1 2 3 4 5 @GetMapping("/greeting") public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) { model.addAttribute("name", name); return "greeting"; } return "greeting" 对应 src/main/resources/templates/greeting.html 1 <p th:text="'hello '+${name}"></p> Home Page,不需要配置 # src/main/resources/static/index.html 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE HTML> <html> <head> <title>Getting Started: Serving Web Content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p>Get your greeting <a href="/greeting">here</a></p> </body> </html> 配置 Spring MVC # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package com. ...

Spring推荐使用构造器注入

January 18, 2020
spring
构造器注入, 依赖注入

Spring团队通常提倡构造函数注入,因为它可以使应用程序组件实现不可变对象并确保所需的依赖项不为null。此外,构造函数注入的组件始终以完全初始化的状态返回到客户端(调用)代码。附带说明一下,大量的构造函数自变量是一种不好的代码味道,这意味着该类可能承担了太多的职责,应该对其进行重构以更好地解决关注点分离问题。 我们通常建议人们对所有必需的协作者使用构造函数注入,对所有其他属性使用setter注入。同样,构造函数注入可确保满足所有必需属性,并且根本不可能以无效状态(未通过其协作者)实例化对象。换句话说,在使用构造函数注入时,您不必使用专用机制来确保设置了必需的属性(普通Java机制除外)。

Spring探索与扫盲

January 16, 2020
spring
入门, Java

刚刚接触Spring,感觉它是一个庞大的体系,内容很多。现在想要对它有一个总体的、感性的认识和了解。首先从官网入手。 spring.io官网下的第一个目录——projects,里面列举了Spring的项目。打开一个项目可以看到它的介绍,学习资料,文档,示例。 第二个目录是guides,里面包含很多的、各个方面的入门引导,这些入门引导都是很简单的。下面还有两个模块——Topical Guides和Tutorials,这两部分稍微长一点,比第一部分要详细一些、内容多一些。 第三个目录是一些付费的培训和认证。 Projects # Spring Framework,必学 # 这个应该是通常说到Spring时代表的Spring本人。 Spring框架可在任何类型的部署平台上为基于Java的现代企业应用程序提供全面的编程和配置模型。 Spring的一个关键元素是在应用程序级别的基础架构支持:Spring专注于企业应用程序的“管道”,以便团队可以专注于应用程序级别的业务逻辑,而不必与特定的部署环境建立不必要的联系。 Spring Data,要学 # 网址 它包含了所有数据存储的子项目,JDBC、JPA、MongoDB、Redis、REST,他们都被这个项目封装了,可以用一致的API使用。 Spring Data的任务是为数据访问提供一个熟悉且一致的,基于Spring的编程模型,同时仍保留基础数据存储的特​​殊特征。 它使使用数据访问技术,关系和非关系数据库,map-reduce框架以及基于云的数据服务变得容易。这是一个总括项目,其中包含许多特定于给定数据库的子项目。这些项目是通过与这些令人兴奋的技术背后的许多公司和开发人员共同开发的。 Spring Security,要学 # 这个应该是用来做登录、权限管理的。下面是机翻介绍和特性。 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。 Spring Security是一个框架,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自定义要求 特性 # 对身份验证和授权的全面且可扩展的支持 防御会话固定,点击劫持,跨站点请求伪造等攻击 Servlet API集成 与Spring Web MVC的可选集成 Spring REST Docs,可能要学 # 貌似是用来生成RESTful服务的文档的。 Spring REST Docs可帮助您记录RESTful服务。 它结合了用Asciidoctor编写的手写文档和Spring MVC Test生成的自动生成的代码片段。这种方法使您摆脱了Swagger之类的工具所产生的文档限制。 它可以帮助您生成准确,简洁且结构合理的文档。然后,该文档可让您的用户以最少的麻烦获得他们所需的信息。 Spring Cloud,要学 # 官方介绍的机翻如下,可以用来搭建微服务系统。 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。 Spring AMQP,可能要学 # 消息队列服务 AMQP维基百科 高级消息队列协议即Advanced Message Queuing Protocol(AMQP)。高级消息队列协议是一种二进制应用层协议,用于应对广泛的面向消息应用程序的支持。协议提供了消息流控制,保证的一个消息对象的传递过程,如至多一次、保证多次、仅有一次等,和基于SASL和TLS的身份验证和消息加密. 是面向消息中间件提供的开放的应用层协议,其设计目标是对于消息的排序、路由(包括点对点和订阅-发布)、保持可靠性、保证安全性[1]。AMQP规范了消息传递方和接收方的行为,以使消息在不同的提供商之间实现互操作性,就像SMTP,HTTP,FTP等协议可以创建交互系统一样。与先前的中间件标准(如Java消息服务)不同的是,JMS在特定的API接口层面和实现行为上进行了统一,而高级消息队列协议则关注于各种消息如何以字节流的形式进行传递。因此,使用了符合协议实现的任意应用程序之间可以保持对消息的创建、传递。 Spring AMQP项目官方介绍的机翻 ...