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

做产品类网站有哪些网站下载免费软件安装

做产品类网站有哪些,网站下载免费软件安装,网站建设什么意思,合肥网站优化方案Springboot学习笔记——3 一、热部署1.1、手动启动热部署1.2、自动启动热部署1.3、热部署范围配置1.4、关闭热部署 二、配置高级2.1、第三方bean属性绑定2.2、松散绑定2.3、常用计量单位应用2.4、bean属性校验2.5、进制数据转换规则 三、测试3.1、加载测试专用属性3.2、加载测试… Springboot学习笔记——3 一、热部署1.1、手动启动热部署1.2、自动启动热部署1.3、热部署范围配置1.4、关闭热部署 二、配置高级2.1、第三方bean属性绑定2.2、松散绑定2.3、常用计量单位应用2.4、bean属性校验2.5、进制数据转换规则 三、测试3.1、加载测试专用属性3.2、加载测试类专用配置3.3、测试类中启动web环境3.4、发送虚拟请求3.5、匹配响应执行状态3.6、匹配响应体3.7、匹配响应头3.8、业务层测试事务回滚3.9、测试用例设置随机数据 四、数据层解决方案4.1、SQL4.1.1、内置数据源4.1.2、jdbcTemplate4.1.3、H2数据库 4.2、NoSQL4.2.1、redis下载安装与基本使用4.2.2、springboot整合redis4.2.3、Springboot读写Redis的客户端4.2.4、springboot操作Redis客户端实现技术切换jedis4.2.5、Mongodb4.2.6、Mongodb下载与安装 一、热部署 1.1、手动启动热部署 开启开发者工具 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional /dependency激活热部署Ctrl F9 关于热部署 重启Restart)自定义开发代码包含类、页面、配置文件等加载位置restart类加载器重载ReLoad)jar包加载位置base类加载器 1.2、自动启动热部署 设置自动构建项目 IDEA失去焦点5秒以后启动热部署 1.3、热部署范围配置 默认不触发重启的目录列表 /META-INF/maven/META-INF/resources/resources/static/public/templates 自定义不参与重启排除项 devtools:restart:exclude: public/**,static/**1.4、关闭热部署 设置高优先级属性禁用热部署 SpringBootApplication public class SsmpApplication {public static void main(String[] args) {System.setProperty(spring.devtools.restart.enabled,false);SpringApplication.run(SsmpApplication.class);} }二、配置高级 2.1、第三方bean属性绑定 使用ConfigurationProperties为第三方bean绑定属性 Bean ConfigurationProperties(prefix datasources) public DruidDataSource dataSource(){DruidDataSource dataSource new DruidDataSource();return dataSource; }datasources:driverClassName: com.mysql.cj.jdbc.DriverEnableConfigurationProperties注解可以将使用ConfigurationProperties注解对应的类加入Spring容器 SpringBootApplication EnableConfigurationProperties(serverConfig.class) public class Springboot0701Application {BeanConfigurationProperties(prefix datasources)public DruidDataSource dataSource(){DruidDataSource dataSource new DruidDataSource();return dataSource;}public static void main(String[] args) {ConfigurableApplicationContext run SpringApplication.run(Springboot0701Application.class, args);DruidDataSource dataSource run.getBean(DruidDataSource.class);System.out.println(dataSource.getDriverClassName());serverConfig serverConfig run.getBean(serverConfig.class);System.out.println(serverConfig.toString());} }//Component Data ConfigurationProperties(prefix servers) public class serverConfig {private String ipAddress;private int port;private long timeout; }注意事项 EnableConfigurationProperties和Component不能同时使用 解除使用ConfigurationProperties注释警告 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactId /dependency2.2、松散绑定 ConfigurationProperties绑定属性支持属性名宽松绑定 public class serverConfig {private String ipAddress;private int port;private long timeout; }以下格式都支持 ip-Address: 189.176.0.1 ip_Address: 189.176.0.1 ipaddress: 189.176.0.1 IPADDRESS: 189.176.0.1 # 常量模式 ip-address: 189.176.0.1 # 烤肉串模式注意事项 宽松绑定不支持注解Value引用单个属性的方式 2.3、常用计量单位应用 Springboot支持JDK8提供的时间与空间计量单位 Component Data ConfigurationProperties(prefix servers) public class serverConfig {private String ipAddress;private int port;private long timeout;DurationUnit(ChronoUnit.HOURS)private Duration serverTimeout;DataSizeUnit(DataUnit.MEGABYTES)private DataSize dataSize; }2.4、bean属性校验 开启数据校验有助于系统安全性J2EE规范中JSR303规范定义了一组有关数据校验相关的API 添加3SR303规范坐标与Hibernate校验框架对应坐标 dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactId /dependencydependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactId /dependency对Bean开启校验功能 Component Data ConfigurationProperties(prefix servers) //2. 开启对当前bean的属性注入校验 Validated public class serverConfig { }设置校验规则 Component Data ConfigurationProperties(prefix servers) //2. 开启对当前bean的属性注入校验 Validated public class serverConfig {private String ipAddress;//3.设置具体的规则Max(value 8888,message 最大值不能超过8888)Min(value 202,message 最小值不能小于202)private int port;private long timeout;DurationUnit(ChronoUnit.HOURS)private Duration serverTimeout;DataSizeUnit(DataUnit.MEGABYTES)private DataSize dataSize; }2.5、进制数据转换规则 字面值表达式导致出现问题 int: 0123 # 会判断为八进制的123导致转换出现问题注意yaml文件中对于数字的定义支持进制书写格式如需使用字符串请使用引号明确标注 string: 0123三、测试 3.1、加载测试专用属性 启动测试环境时可以通过properties参数设置测试环境专用的属性 //properties属性可以为当前测试用例添加临时的属性配置 SpringBootTest(properties {test.proptestValue2}) public class propertiesAndArgsTest {Value(${test.prop})private String msg;Testvoid testProperties(){System.out.println(msg);} }优势比多环境开发中的测试环境影响范围更小仅对当前测试类有效 在启动测试环境时可以通过args参数设置测试环境专用的传入参数 //args属性可以为当前测试用例添加临时的命令行参数 SpringBootTest(args {--test.proptestValue3}) public class propertiesAndArgsTest {Value(${test.prop})private String msg;Testvoid testProperties(){System.out.println(msg);} }3.2、加载测试类专用配置 使用Import注解加载当前测试类专用的配置 SpringBootTest Import({MsgConfig.class}) public class ConfigTest {Autowiredprivate String msg;Testvoid test1(){System.out.println(msg);} }可以加载测试范围配置应用于小范围测试环境 3.3、测试类中启动web环境 模拟端口 package com.smulll;import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.DEFINED_PORT) class Springboot0801ApplicationTests {Testvoid contextLoads() {} }3.4、发送虚拟请求 虚拟请求测试 SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.DEFINED_PORT) //开启虚拟MVC调用 AutoConfigureMockMvc class Springboot0801ApplicationTests {Testvoid testWeb(Autowired MockMvc mvc) throws Exception {//创建虚拟请求当前访问/booksMockHttpServletRequestBuilder builder MockMvcRequestBuilders.get(/books);//执行请求ResultActions perform mvc.perform(builder);} }3.5、匹配响应执行状态 虚拟请求状态匹配 Test void testStatus(Autowired MockMvc mvc) throws Exception {//创建虚拟请求当前访问/booksMockHttpServletRequestBuilder builder MockMvcRequestBuilders.get(/books);//执行请求ResultActions perform mvc.perform(builder);//设置预期值与真实值进行比较测试成功通过失败测试停止//定义本次调用的预期值StatusResultMatchers status MockMvcResultMatchers.status();//预计本次调用的成功值状态200ResultMatcher ok status.isOk();//添加预计值到本次调用过程中进行匹配perform.andExpect(ok); }3.6、匹配响应体 虚拟请求体匹配 Test void testBody(Autowired MockMvc mvc) throws Exception {//创建虚拟请求当前访问/booksMockHttpServletRequestBuilder builder MockMvcRequestBuilders.get(/books);//执行请求ResultActions perform mvc.perform(builder);//设置预期值与真实值进行比较测试成功通过失败测试停止//定义本次调用的预期值ContentResultMatchers content MockMvcResultMatchers.content();//预计本次调用执行结果ResultMatcher result content.string(springboot);//添加预计值到本次调用过程中进行匹配perform.andExpect(result); }虚拟请求体json匹配 Test void testJSON(Autowired MockMvc mvc) throws Exception {//创建虚拟请求当前访问/booksMockHttpServletRequestBuilder builder MockMvcRequestBuilders.get(/books);//执行请求ResultActions perform mvc.perform(builder);//设置预期值与真实值进行比较测试成功通过失败测试停止//定义本次调用的预期值ContentResultMatchers content MockMvcResultMatchers.content();//预计本次调用执行结果ResultMatcher result content.json({\n \id\: 1,\n \type\: \springboot\,\n \name\: \springboot\,\n \description\: \springboot\\n });//添加预计值到本次调用过程中进行匹配perform.andExpect(result); }3.7、匹配响应头 虚拟请求头匹配 Test void testContentType(Autowired MockMvc mvc) throws Exception {//创建虚拟请求当前访问/booksMockHttpServletRequestBuilder builder MockMvcRequestBuilders.get(/books);//执行请求ResultActions perform mvc.perform(builder);//设置预期值与真实值进行比较测试成功通过失败测试停止//定义本次调用的预期值HeaderResultMatchers Header MockMvcResultMatchers.header();//预计本次调用执行结果ResultMatcher string Header.string(Content-Type, application/json);//添加预计值到本次调用过程中进行匹配perform.andExpect(string); }3.8、业务层测试事务回滚 为测试用例添加事务SpringBoot会对测试用例对应的事务提交操作进行回滚 SpringBootTest Transactional public class TestSave {Autowiredprivate bookServer bookServer; }如果想在测试用例中提交事务可以通过Rollback注解设置 SpringBootTest Transactional Rollback(false) public class TestSave { }3.9、测试用例设置随机数据 测试用例数据通常采用随机值进行测试使用SpringBoot提供的随机数为其赋值 testcase:book:id: ${random.int}name: ${random.value} #随机字符串MDS字符串32位type: ${random.int(10,100)}uuid: ${random.uuid} #随机uuidpublishTime: ${random.long}${random.int}表示随机整数${random.int(10)}表示10以内的随机数${random.int(10,20)}表示10到20的随机数其中()可以是任意字符例如[]!!均可 四、数据层解决方案 4.1、SQL 4.1.1、内置数据源 现有数据层解决方案技术选型 Druid MyBatis-Plus MySQL数据源DruidDataSource持久化技术MyBatis-PlusMyBatis数据库MySQL SpringBoot提供了3种内嵌的数据源对象供开发者选择 HikariCP默认内置数据源对象Tomcat提供DataSourceHikariCP不可用的情况下且在web环境中将使用tomcat服务器配置的数据源对象Commons DBCPHikari不可用tomcat数据源也不可用将使用dbcp数据源 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springbootbase?serverTimezoneUTCusername: rootpassword: 123456通用配置无法设置具体的数据源配置信息仅提供基本的连接相关配置如需配置在下一级配置中设置具体设定 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springbootbase?serverTimezoneUTCusername: rootpassword: 123456hikari:maximum-pool-size: 504.1.2、jdbcTemplate 内置持久化解决方案——JdbcTemplate SpringBootTest class Springboot0901ApplicationTests {Testvoid testJdbc(){String sql select * from tb_book where id1;ListBook list jdbcTemplate.query(sql, new RowMapperBook() {Overridepublic Book mapRow(ResultSet rs, int rowNum) throws SQLException {Book book new Book();book.setId(rs.getInt(id));book.setName(rs.getString(name));book.setType(rs.getString(type));book.setDescription(rs.getString(description));return book;}});System.out.println(list);} }dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId /dependencyspring: jdbc:template:query-timeout: -1 #查询超时时间max-rows: 500 #最大行数fetch-size: -1 #缓存行数4.1.3、H2数据库 springBoot提供了3种内嵌数据库供开发者选择提高开发测试效率 H2HSQLDerby 导入H2相关坐标 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId /dependency dependencygroupIdcom.h2database/groupIdartifactIdh2/artifactIdscoperuntime/scope /dependency设置当前项目为web工程并配置H2管理控制台参数 server: port: 80 spring:h2:console: path: /h2enabled: true访问用户名sa默认密码123456 设置访问的数据源 server:port: 80 spring:h2:console:path: /h2enabled: truedatasource:driver-class-name: org.h2.Driverurl: jdbc:h2:~/testusername: sapassword: 123456H2数据库控制台仅用于开发阶段线上项目请务必关闭控制台功能 server:port: 80 spring:h2:console:path: /h2enabled: false4.2、NoSQL 4.2.1、redis下载安装与基本使用 Redis是一款key-value存储结构的内存级NoSQL数据库 支持多种数据存储格式支持持久化支持集群 redis下载 redis下载Windows 安装启动 Windows解压安装或一键式安装服务端启动命令 redis-server.exe redis.windows.conf客户端启动命令 redis-cli.exe4.2.2、springboot整合redis 导入SpringBoot整合Redis坐标 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency配置Redis采用默认配置 spring:data:redis:host: localhostport: 6379主机localhost默认端口6379默认 RedisTemplate提供操作各种数据存储类型的接口API 客户端RedisTemplate SpringBootTest class Springboot10RedisApplicationTests {Autowiredprivate RedisTemplate redisTemplate;Testvoid set() {ValueOperations valueOperations redisTemplate.opsForValue();valueOperations.set(age,19);}Testvoid get(){ValueOperations valueOperations redisTemplate.opsForValue();Object o valueOperations.get(age);System.out.println(o);} }4.2.3、Springboot读写Redis的客户端 StringRedisTemplate以字符串作为key和value与Redis客户端操作等效 SpringBootTest public class RedisTest {Autowiredprivate StringRedisTemplate stringRedisTemplate;Testvoid Demo1(){ValueOperationsString, String ops stringRedisTemplate.opsForValue();System.out.println(ops.get(name));} }4.2.4、springboot操作Redis客户端实现技术切换jedis 配置客户端 spring:data:redis:host: localhostport: 6379client-type: jedis配置客户端专用属性 spring:data:redis:host: localhostport: 6379client-type: jedislettuce:pool:max-active: 16jedis:pool:max-active: 16lettcus与jedis区别 jedis连接Redis服务器是直连模式当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用这样整体性能就大受影响。lettcus基于Netty框架进行与Redis服务器连接底层设计中采用StatefulRedisConnection。StatefulRedisConnection自身是线程安全的可以保障并发访问安全问题所以一个连接可以被多线程复用。当然lettcus也支持多连接实例一起工作。 4.2.5、Mongodb MongoDB是一个开源、高性能、无模式的文档型数据库。NoSQL数据库产品中的一种是最像关系型数据库的非关系型数据库淘宝用户数据 存储位置:数据库特征:永久性存储修改频度极低 游戏装备数据、游戏道具数据 存储位置:数据库、Mongodb特征:永久性存储与临时存储相结合、修改频度较高 直播数据、打赏数据、粉丝数据 存储位置:数据库、Mongodb特征:永久性存储与临时存储相结合修改频度极高 物联网数据 存储位置:Mongodb特征:临时存储修改频度飞速 4.2.6、Mongodb下载与安装 Windows版Mongo下载 下载地址 Windows版Mongo安装 解压后设置数据目录 Windows版Mongo启动 服务端启动 mongod --dbpath..\data\db客户端启动 mongo --host127.0.8.1 --port27017
http://www.dnsts.com.cn/news/81633.html

相关文章:

  • 淘宝客怎么建立网站网站设计网站建设网站制作
  • 张家界简单的网站建设跨境电商怎么注册店铺
  • 黑龙江企业网站建设公司如何编写网站建设方案书
  • 顺德网站建设市场对百度竞价排名的看法
  • 杭州建设网站平台的哪些企业比较好wordpress调整文章编辑界面
  • 深圳网站开发技术个性化网站建设费用
  • 深圳工程网站建设element ui设计网站
  • 黄村做网站的公司培训机构网站建设要求
  • 南京高端网站建设郑州做网站哪家公司最好
  • 长沙做网站优化的公司官方网站找oem做洗发水厂家
  • 机械类网站如何做网站优化wordpress如何添加注册登录
  • 提供网站建设哪家效果好wordpress 标签 函数
  • 网站设计的主要机构有哪些wordpress时间云储存
  • wordpress观点windows优化大师怎么样
  • 福建省网站建设方案书贵州网站集约化建设
  • 制作网站基本步骤百度推广怎么做
  • 做简单网站需要学什么软件有哪些内容网站建设空心正方形
  • 湖南做网站seo中文意思是
  • 看电影电视剧的好网站纤纤影院seo零基础视频教程
  • 怎么自己做彩票网站吗大型网站建设教程
  • 广州 建网站商务公司网站建设
  • 电商网站开发计划网页设计代码免费
  • 微信 网站应用开发企业注册地址怎么查
  • 猎头网站 做猎头的流程商贸公司经营范围
  • 北京宏福建设工程有限公司网站苏州网页设计方法
  • app网站开发报价谷歌play
  • 做网站是怎么赚钱的违法金融 网站建设
  • 济南网站建设公司按需定制a站app
  • 网站开发人员工具种类wordpress更改ip后无主题
  • 传奇网站装备动态图怎么做深圳网站建设运营