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

南通做阿里巴巴网站的单位网络推广平台有哪些公司

南通做阿里巴巴网站的单位,网络推广平台有哪些公司,wordpress dragon,网站开发英语英语SpringBoot简介 回顾什么是Spring Spring是一个开源框架#xff0c;2003 年兴起的一个轻量级的Java 开发框架#xff0c;作者#xff1a;Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的#xff0c;简化开发。 Spring是如何简化Java开发的 为了降低Ja…SpringBoot简介 回顾什么是Spring Spring是一个开源框架2003 年兴起的一个轻量级的Java 开发框架作者Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的简化开发。 Spring是如何简化Java开发的 为了降低Java开发的复杂性Spring采用了以下4种关键策略 1、基于POJO的轻量级和最小侵入性编程所有东西都是bean 2、通过IOC依赖注入DI和面向接口实现松耦合 3、基于切面AOP和惯例进行声明式编程 4、通过切面和模版减少样式代码RedisTemplatexxxTemplate 什么是SpringBoot 学过javaweb的我们就知道开发一个web应用从最初开始接触Servlet结合Tomcat, 跑出一个Hello Wolrld程序是要经历特别多的步骤后来就用了框架SpringMVC到了现在的SpringBoot过一两年又会有其他web框架出现 言归正传什么是SpringBoot呢就是一个javaweb的开发框架和SpringMVC类似对比其他javaweb框架的好处官方说是简化开发约定大于配置 you can “just run”能迅速的开发web应用几行代码开发一个http接口。 所有的技术框架的发展似乎都遵循了一条主线规律从一个复杂应用场景 衍生 一种规范框架人们只需要进行各种配置而不需要自己去实现它这时候强大的配置功能成了优点发展到一定程度之后人们根据实际生产应用情况选取其中实用功能和设计精华重构出一些轻量级的框架之后为了提高开发效率嫌弃原先的各类配置过于麻烦于是开始提倡“约定大于配置”进而衍生出一些一站式的解决方案。 是的这就是Java企业级应用-J2EE-spring-springboot的过程。 随着 Spring 不断的发展涉及的领域越来越多项目整合开发需要配合各种各样的文件慢慢变得不那么易用简单违背了最初的理念甚至人称配置地狱。Spring Boot 正是在这样的一个背景下被抽象出来的开发框架目的为了让大家更容易的使用 Spring 、更容易的集成各种常用的中间件、开源软件 Spring Boot 基于 Spring 开发Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说它并不是用来替代 Spring 的解决方案而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想默认帮我们进行了很多设置多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。 简单来说就是SpringBoot其实不是什么新的框架它默认配置了很多框架的使用方式就像maven整合了所有的jar包spring boot整合了所有的框架 。 Spring Boot 出生名门从一开始就站在一个比较高的起点又经过这几年的发展生态足够完善Spring Boot 已经当之无愧成为 Java 领域最热门的技术。 Spring Boot的主要优点 为所有Spring开发者更快的入门开箱即用提供各种默认配置来简化项目配置内嵌式容器简化Web项目没有冗余代码生成和XML配置的要求 真的很爽我们快速去体验开发个接口的感觉吧 HelloWorld 准备工作 我们将学习如何快速的创建一个Spring Boot应用并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解并体验其结构简单、开发快速的特性。 我的环境准备 java version “1.8.0_181”Maven-3.6.1SpringBoot 2.x 最新版 开发工具 IDEA 创建基础项目说明 Spring官方提供了非常方便的工具让我们快速构建应用 Spring Initializrhttps://start.spring.io/ **项目创建方式一**使用Spring Initializr 的 Web页面创建项目 1、打开 https://start.spring.io/ 2、填写项目信息 3、点击”Generate Project“按钮生成项目下载此项目 4、解压项目包并用IDEA以Maven项目导入一路下一步即可直到项目导入完毕。 5、如果是第一次使用可能速度会比较慢包比较多、需要耐心等待一切就绪。 **项目创建方式二**使用 IDEA 直接创建项目 1、创建一个新项目 2、选择spring initalizr 可以看到默认就是去官网的快速构建工具那里实现 3、填写项目信息 4、选择初始化的组件初学勾选 Web 即可 5、填写项目路径 6、等待项目构建成功 项目结构分析 通过上面步骤完成了基础项目的创建。就会自动生成以下文件。 1、程序的主启动类 2、一个 application.properties 配置文件 3、一个 测试类 4、一个 pom.xml pom.xml 分析 打开pom.xml看看Spring Boot项目的依赖 !-- 父依赖 -- parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.5.RELEASE/versionrelativePath/ /parentdependencies!-- web场景启动器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- springboot单元测试 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope!-- 剔除依赖 --exclusionsexclusiongroupIdorg.junit.vintage/groupIdartifactIdjunit-vintage-engine/artifactId/exclusion/exclusions/dependency /dependenciesbuildplugins!-- 打包插件 --plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins /build编写一个http接口 1、在主程序的同级目录下新建一个controller包一定要在同级目录下否则识别不到 2、在包中新建一个HelloController类 RestController public class HelloController {RequestMapping(/hello)public String hello() {return Hello World;}}3、编写完毕后从主程序启动项目浏览器发起请求看页面返回控制台输出了 Tomcat 访问的端口号 简单几步就完成了一个web接口的开发SpringBoot就是这么简单。所以我们常用它来建立我们的微服务项目 将项目打成jar包点击 maven的 package 如果遇到以上错误可以配置打包时 跳过项目运行测试用例 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdconfiguration!--跳过项目运行测试用例--skipTeststrue/skipTests/configuration /plugin如果打包成功则会在target目录下生成一个 jar 包 打成了jar包后就可以在任何地方运行了OK 彩蛋 如何更改启动时显示的字符拼成的字母SpringBoot呢也就是 banner 图案 只需一步到项目下的 resources 目录下新建一个banner.txt 即可。 图案可以到https://www.bootschool.net/ascii 这个网站生成然后拷贝到文件中即可 SpringBoot这么简单的东西背后一定有故事我们之后去进行一波源码分析 配置文件 SpringBoot使用一个全局的配置文件 配置文件名称是固定的 application.properties 语法结构 keyvalue application.yml 语法结构 key空格 value **配置文件的作用 **修改SpringBoot自动配置的默认值因为SpringBoot在底层都给我们自动配置好了 比如我们可以在配置文件中修改Tomcat 默认启动的端口号测试一下 server.port8081yaml概述 YAML是 “YAML Ain’t a Markup Language” YAML不是一种标记语言的递归缩写。在开发的这种语言时YAML 的意思其实是“Yet Another Markup Language”仍是一种标记语言 这种语言以数据作为中心而不是以标记语言为重点 以前的配置文件大多数都是使用xml来配置比如一个简单的端口配置我们来对比下yaml和xml 传统xml配置 serverport8081port /serveryaml配置 serverprot: 8080yaml基础语法 说明语法要求严格 1、空格不能省略 2、以缩进来控制层级关系只要是左边对齐的一列数据都是同一个层级的。 3、属性和值的大小写都是十分敏感的。 字面量普通的值 [ 数字布尔值字符串 ] 字面量直接写在后面就可以 字符串默认不用加上双引号或者单引号 k: v注意 “ ” 双引号不会转义字符串里面的特殊字符 特殊字符会作为本身想表示的意思 比如 name: “zhang\n san” 输出 zhang 换行 san ‘’ 单引号会转义特殊字符 特殊字符最终会变成和普通字符一样输出 比如 name: ‘zhang\n san’ 输出 zhang \n san 对象、Map键值对 #对象、Map格式 k: v1:v2:在下一行来写对象的属性和值得关系注意缩进比如 student:name: zhangsanage: 12行内写法 student: {name: qinjiang,age: 3}数组 List、set 用 - 值表示数组中的一个元素,比如 pets:- cat- dog- pig行内写法 pets: [cat,dog,pig]修改SpringBoot的默认端口号 配置文件中添加端口号的参数就可以切换端口 server:port: 8082注入配置文件 yaml文件更强大的地方在于他可以给我们的实体类直接注入匹配值 yaml注入配置文件 1、在springboot项目中的resources目录下新建一个文件 application.yml 2、编写一个实体类 Dog Component //注册bean到容器中 public class Dog {private String name;private Integer age;//有参无参构造、get、set方法、toString()方法 }3、思考我们原来是如何给bean注入属性值的Value给狗狗类测试一下 Component //注册bean public class Dog {Value(阿黄)private String name;Value(18)private Integer age; }4、在SpringBoot的测试类下注入狗狗输出一下 SpringBootTest class DemoApplicationTests {Autowired //将狗狗自动注入进来Dog dog;Testpublic void contextLoads() {System.out.println(dog); //打印看下狗狗对象}}结果成功输出Value注入成功这是我们原来的办法对吧。 5、我们在编写一个复杂一点的实体类Person 类 Component //注册bean到容器中 public class Person {private String name;private Integer age;private Boolean happy;private Date birth;private MapString,Object maps;private ListObject lists;private Dog dog;//有参无参构造、get、set方法、toString()方法 }6、我们来使用yaml配置的方式进行注入大家写的时候注意区别和优势我们编写一个yaml配置 person:name: zhangsanage: 3happy: falsebirth: 2000/01/01maps: {k1: v1,k2: v2}lists:- code- girl- musicdog:name: 旺财age: 17、我们刚才已经把person这个对象的所有值都写好了我们现在来注入到我们的类中 /* ConfigurationProperties作用 将配置文件中配置的每一个属性的值映射到这个组件中 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定 参数 prefix “person” : 将配置文件中的person下面的所有属性一一对应 */ Component //注册bean ConfigurationProperties(prefix person) public class Person {private String name;private Integer age;private Boolean happy;private Date birth;private MapString,Object maps;private ListObject lists;private Dog dog; }8、IDEA 提示springboot配置注解处理器没有找到让我们看文档我们可以查看文档找到一个依赖 !-- 导入配置文件处理器配置文件进行绑定就会有提示需要重启 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional /dependency9、确认以上配置都OK之后我们去测试类中测试一下 SpringBootTest class DemoApplicationTests {AutowiredPerson person; //将person自动注入进来Testpublic void contextLoads() {System.out.println(person); //打印person信息}}结果所有值全部注入成功 yaml配置注入到实体类完全OK 加载指定的配置文件 **PropertySource **加载指定的配置文件 configurationProperties默认从全局配置文件中获取值 1、我们去在resources目录下新建一个person.properties文件 namelisi2、然后在我们的代码中指定加载person.properties文件 PropertySource(value classpath:person.properties) Component //注册bean public class Person {Value(${name})private String name;...... }3、再次输出测试一下指定配置文件绑定成功 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urldata%3Aimage%2Fsvg%2Bxml%2C%253C%253Fxml%20version%3D’1.0’%20encoding%3D’UTF-8’%253F%253E%253Csvg%20width%3D’1px’%20height%3D’1px’%20viewBox%3D’0%200%201%201’%20version%3D’1.1’%20xmlns%3D’http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg’%20xmlns%3Axlink%3D’http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink’%253E%253Ctitle%253E%253C%2Ftitle%253E%253Cg%20stroke%3D’none’%20stroke-width%3D’1’%20fill%3D’none’%20fill-rule%3D’evenodd’%20fill-opacity%3D’0’%253E%253Cg%20transform%3D’translate(-249.000000%2C%20-126.000000pos_idimg-LonRl7VU-1701822388708)’ fill‘%23FFFFFF’%3E%3Crect x‘249’ y‘126’ width‘1’ height‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E) 配置文件占位符 配置文件还可以编写占位符生成随机数 person:name: qinjiang${random.uuid} # 随机uuidage: ${random.int} # 随机inthappy: falsebirth: 2000/01/01maps: {k1: v1,k2: v2}lists:- code- girl- musicdog:name: ${person.hello:other}_旺财age: 1回顾properties配置 我们上面采用的yaml方法都是最简单的方式开发中最常用的也是springboot所推荐的那我们来唠唠其他的实现方式道理都是相同的写还是那样写配置文件除了yml还有我们之前常用的properties 我们没有讲我们来唠唠 【注意】properties配置文件在写中文的时候会有乱码 我们需要去IDEA中设置编码格式为UTF-8 settings–FileEncodings 中配置 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urldata%3Aimage%2Fsvg%2Bxml%2C%253C%253Fxml%20version%3D’1.0’%20encoding%3D’UTF-8’%253F%253E%253Csvg%20width%3D’1px’%20height%3D’1px’%20viewBox%3D’0%200%201%201’%20version%3D’1.1’%20xmlns%3D’http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg’%20xmlns%3Axlink%3D’http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink’%253E%253Ctitle%253E%253C%2Ftitle%253E%253Cg%20stroke%3D’none’%20stroke-width%3D’1’%20fill%3D’none’%20fill-rule%3D’evenodd’%20fill-opacity%3D’0’%253E%253Cg%20transform%3D’translate(-249.000000%2C%20-126.000000pos_idimg-YfvLzPGn-1701822388708)’ fill‘%23FFFFFF’%3E%3Crect x‘249’ y‘126’ width‘1’ height‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E) 测试步骤 1、新建一个实体类User Component //注册bean public class User {private String name;private int age;private String sex; }2、编辑配置文件 user.properties user1.namelisi user1.age18 user1.sex男3、我们在User类上使用Value来进行注入 Component //注册bean PropertySource(value classpath:user.properties) public class User {//直接使用valueValue(${user.name}) //从配置文件中取值private String name;Value(#{9*2}) // #{SPEL} Spring表达式private int age;Value(男) // 字面量private String sex; }4、Springboot测试 SpringBootTest class DemoApplicationTests {AutowiredUser user;Testpublic void contextLoads() {System.out.println(user);}}结果正常输出 对比小结 Value这个使用起来并不友好我们需要为每个属性单独注解赋值比较麻烦我们来看个功能对比图 1、ConfigurationProperties只需要写一次即可 Value则需要每个字段都添加 2、松散绑定这个什么意思呢? 比如我的yml中写的last-name这个和lastName是一样的 - 后面跟着的字母默认是大写的。这就是松散绑定。可以测试一下 3、JSR303数据校验 这个就是我们可以在字段是增加一层过滤器验证 可以保证数据的合法性 4、复杂类型封装yml中可以封装对象 使用value就不支持 结论 配置yml和配置properties都可以获取到值 强烈推荐 yml 如果我们在某个业务中只需要获取配置文件中的某个值可以使用一下 value 如果说我们专门编写了一个JavaBean来和配置文件进行一一映射就直接configurationProperties不要犹豫 otTest class DemoApplicationTests { Autowired User user;Test public void contextLoads() {System.out.println(user); }} 结果正常输出[外链图片转存中...(img-CNSV416M-1701822388708)]## 对比小结Value这个使用起来并不友好我们需要为每个属性单独注解赋值比较麻烦我们来看个功能对比图[外链图片转存中...(img-eJ39rw10-1701822388708)]1、ConfigurationProperties只需要写一次即可 Value则需要每个字段都添加2、松散绑定这个什么意思呢? 比如我的yml中写的last-name这个和lastName是一样的 - 后面跟着的字母默认是大写的。这就是松散绑定。可以测试一下3、JSR303数据校验 这个就是我们可以在字段是增加一层过滤器验证 可以保证数据的合法性4、复杂类型封装yml中可以封装对象 使用value就不支持**结论**配置yml和配置properties都可以获取到值 强烈推荐 yml如果我们在某个业务中只需要获取配置文件中的某个值可以使用一下 value如果说我们专门编写了一个JavaBean来和配置文件进行一一映射就直接configurationProperties不要犹豫
http://wiki.neutronadmin.com/news/341001/

相关文章:

  • 佛山建站专家北京做网站建设公司排名
  • 苏州工业园区做政务网站的公司室内设计公司取名字
  • 怎么做网站地图导航wp系统网站如何做seo
  • 深圳做网站排名公司推荐wordpress基础版
  • 建设部网站官网查询重庆网站查询
  • 优化网站排名的方法如何网上快速接网站开发订单
  • 哪个网站是专门做封面素材个人做网站怎么赚钱
  • 莱芜网络推广公司长沙网站关键词seo
  • 深圳南山企业网站建设报价网站职业技能培训学校
  • 软件开发培训视频seo网站关键词排名优化
  • 软件开发包含网站开发客户关系管理的内容
  • frontpg做网站好吗浅谈天猫的电子商务网站建设
  • vs2015网站开发科技 公司 响应式 网站
  • 合肥 做网站2010年青海省建设厅网站
  • 人防网站建设seo sem是什么
  • 沛县互助网站开发怎么在自己的网站上传视频
  • 网站开发定制推广杭州广州天河区网站设计公司
  • 程序员做兼职的网站vs 团队网站开发
  • 做电影网站配什么公众号建设网站设计的公司
  • 沈阳专业制作网站济宁中小企业网站建设
  • 外国网站学习做任务 升级查询成绩的网站怎么做
  • 建筑网站转发电子商务网站建设期中
  • 网站后台注入北京分类信息网
  • 怎么分析网站建设的优缺点semiconductor
  • 免费网站排名优化学校网站维护怎么做
  • 怎样做访问外国网站才能不卡品牌建设的内容包括
  • 程序员帮忙做放贷网站wordpress 应用主题
  • 做app网站需要什么条件如何为产品做网站
  • 怎样建一个免费网站销售方案怎么写
  • 上海网站设计印刷拆除友情链接作用