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

电子商务网站设计说明中山手机网站制作多少钱

电子商务网站设计说明,中山手机网站制作多少钱,厦门网站排名优化软件,新竹自助建站系统1.概述 在本文中#xff0c;我们将通过Spring Data Redis库回顾如何将Redis与Spring Boot结合使用的基础知识。 我们将构建一个应用程序#xff0c;演示如何通过Web界面执行CRUD操作Redis 。 Github上提供了该项目的完整源代码。 2.什么是Redis#xff1f; Redis是一个开源… 1.概述 在本文中我们将通过Spring Data Redis库回顾如何将Redis与Spring Boot结合使用的基础知识。 我们将构建一个应用程序演示如何通过Web界面执行CRUD操作Redis 。 Github上提供了该项目的完整源代码。 2.什么是Redis Redis是一个开源的内存中键值数据存储 用作数据库缓存和消息代理。 在实现方面键值存储代表NoSQL空间中最大和最旧的成员之一。 Redis支持带范围查询的数据结构例如字符串哈希列表集合和排序集合。 通过为数据存储提供抽象 Spring Data Redis框架使编写使用Redis键值存储的Spring应用程序变得容易。 3.设置Redis服务器 该服务器可从http://redis.io/download免费获得。 如果您使用的是Mac则可以通过自制软件安装它 brew install redis 然后启动服务器 mikes-MacBook-Air:~ mike$ redis-server 10699:C 23 Nov 08:35:58.306 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 10699:C 23 Nov 08:35:58.307 # Redis version4.0.2, bits64, commit00000000, modified0, pid10699, just started 10699:C 23 Nov 08:35:58.307 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 10699:M 23 Nov 08:35:58.309 * Increased maximum number of open files to 10032 (it was originally set to 256)._._ _.-__ -._ _.- . _. -._ Redis 4.0.2 (00000000/0) 64 bit.- .-. \/ _.,_ -._ ( , .- | , ) Running in standalone mode|-._-...- __...-.-._| _.-| Port: 6379| -._ ._ / _.- | PID: 10699-._ -._ -./ _.- _.- |-._-._ -.__.- _.-_.-| | -._-._ _.-_.- | http://redis.io -._ -._-.__.-_.- _.- |-._-._ -.__.- _.-_.-| | -._-._ _.-_.- | -._ -._-.__.-_.- _.- -._ -.__.- _.- -._ _.- -.__.- 10699:M 23 Nov 08:35:58.312 # Server initialized 10699:M 23 Nov 08:35:58.312 * Ready to accept connections 4. Maven依赖 让我们在pom.xml中声明我们要构建的示例应用程序所必需的依赖项 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency 5. Redis配置 我们需要将我们的应用程序与Redis服务器连接。 为了建立这种连接我们使用Redis客户端实现Jedis 。 5.1配置 让我们从配置bean定义开始 BeanJedisConnectionFactory jedisConnectionFactory() {return new JedisConnectionFactory();}Beanpublic RedisTemplateString, Object redisTemplate() {final RedisTemplateString, Object template new RedisTemplateString, Object();template.setConnectionFactory(jedisConnectionFactory());template.setValueSerializer(new GenericToStringSerializerObject(Object.class));return template;} JedisConnectionFactory被制成一个bean因此我们可以创建一个RedisTemplate来查询数据。 5.2消息发布者 遵循SOLID的原理 我们创建一个MessagePublisher接口 public interface MessagePublisher {void publish(final String message); } 我们实现了MessagePublisher接口以使用高级RedisTemplate发布消息因为RedisTemplate允许将任意对象作为消息传递 Service public class MessagePublisherImpl implements MessagePublisher {Autowiredprivate RedisTemplateString, Object redisTemplate;Autowiredprivate ChannelTopic topic;public MessagePublisherImpl() {}public MessagePublisherImpl(final RedisTemplateString, Object redisTemplate, final ChannelTopic topic) {this.redisTemplate redisTemplate;this.topic topic;}public void publish(final String message) {redisTemplate.convertAndSend(topic.getTopic(), message);}} 我们还将其定义为RedisConfig中的bean BeanMessagePublisher redisPublisher() {return new MessagePublisherImpl(redisTemplate(), topic());}讯息侦听器 为了订阅消息我们需要实现MessageListener接口每次收到新消息时都会调用回调并通过名为onMessage的方法执行用户代码。 该接口可访问消息已通过其接收消息的通道以及订阅使用的与该通道匹配的任何模式。 因此我们创建一个服务类来实现MessageSubscriber Service public class MessageSubscriber implements MessageListener {public static ListString messageList new ArrayListString();public void onMessage(final Message message, final byte[] pattern) {messageList.add(message.toString());System.out.println(Message received: new String(message.getBody()));}} 我们向RedisConfig添加一个bean定义 BeanMessageListenerAdapter messageListener() {return new MessageListenerAdapter(new MessageSubscriber());}6. Redis存储库 现在我们已经配置了应用程序以与Redis服务器交互我们将准备应用程序以获取示例数据。 6.1模型 在此示例中我们定义了具有两个字段的Movie模型 private String id; private String name; //standard getters and setters6.2储存库界面 与其他Spring Data项目不同 Spring Data Redis确实提供了在其他Spring Data接口之上构建的任何功能 。 对于拥有其他Spring Data项目经验的我们来说这很奇怪。 通常不需要使用Spring Data项目编写存储库接口的实现。 我们只需要与界面进行交互即可。 Spring Data JPA提供了许多存储库接口可以扩展它们以获得诸如CRUD操作派生查询和分页之类的功能。 因此不幸的是 我们需要编写我们自己的接口 然后定义方法 public interface RedisRepository {MapObject, Object findAllMovies();void add(Movie movie);void delete(String id);Movie findMovie(String id);}6.3资料库的实施 我们的实现类使用我们的配置类RedisConfig定义的redisTemplate。 我们使用Spring Data Redis提供的HashOperations模板 Repository public class RedisRepositoryImpl implements RedisRepository {private static final String KEY Movie;private RedisTemplateString, Object redisTemplate;private HashOperations hashOperations;Autowiredpublic RedisRepositoryImpl(RedisTemplateString, Object redisTemplate){this.redisTemplate redisTemplate;}PostConstructprivate void init(){hashOperations redisTemplate.opsForHash();}public void add(final Movie movie) {hashOperations.put(KEY, movie.getId(), movie.getName());}public void delete(final String id) {hashOperations.delete(KEY, id);}public Movie findMovie(final String id){return (Movie) hashOperations.get(KEY, id);}public MapObject, Object findAllMovies(){return hashOperations.entries(KEY);}} 让我们记下init方法。 在此方法中我们使用名为opsForHash的函数该函数返回对绑定到给定键的哈希值执行的操作。 然后我们将init中定义的hashOps用于所有CRUD操作。 7. Web界面 在本节中我们将回顾向Web界面添加Redis CRUD操作功能。 7.1添加电影 我们希望能够在我们的网页中添加电影。 关键是电影ID 值是实际对象。 但是我们稍后将解决此问题因此仅将电影名称显示为值。 因此让我们将表单添加到HTML文档中并分配适当的名称和ID form idaddForm div classform-grouplabel forkeyInputMovie ID (key)/labelinput namekeyInput idkeyInput classform-control//div div classform-grouplabel forvalueInputMovie Name (field of Movie object value)/labelinput namevalueInput idvalueInput classform-control//divbutton classbtn btn-default idaddButtonAdd/button/form 现在我们使用JavaScript来保存表单提交中的值 $(document).ready(function() {var keyInput $(#keyInput),valueInput $(#valueInput);refreshTable();$(#addForm).on(submit, function(event) {var data {key: keyInput.val(),value: valueInput.val()};$.post(/add, data, function() {refreshTable();keyInput.val();valueInput.val();keyInput.focus();});event.preventDefault();});keyInput.focus(); }); 我们为POST请求分配RequestMapping值请求键和值创建一个Movie对象并将其保存到存储库中 RequestMapping(value /add, method RequestMethod.POST)public ResponseEntityString add(RequestParam String key,RequestParam String value) {Movie movie new Movie(key, value);redisRepository.add(movie);return new ResponseEntity(HttpStatus.OK);}7.2查看内容 添加Movie对象后我们刷新表以显示更新的表。 在7.1节JavaScript代码块中我们调用了一个称为refreshTableJavaScript函数。 此函数执行GET请求以检索存储库中的当前数据 function refreshTable() {$.get(/values, function(data) {var attr,mainTable $(#mainTable tbody);mainTable.empty();for (attr in data) {if (data.hasOwnProperty(attr)) {mainTable.append(row(attr, data[attr]));}}}); } GET请求由名为findAll的方法处理该方法检索存储在存储库中的所有Movie对象然后将数据类型从Map ObjectObject转换为Map StringString RequestMapping(/values)public ResponseBody MapString, String findAll() {MapObject, Object aa redisRepository.findAllMovies();MapString, String map new HashMapString, String();for(Map.EntryObject, Object entry : aa.entrySet()){String key (String) entry.getKey();map.put(key, aa.get(key).toString());}return map;}7.3删除电影 我们编写Javascript来执行POST请求   / delete 刷新表并将键盘焦点设置为按键输入 function deleteKey(key) {$.post(/delete, {key: key}, function() {refreshTable();$(#keyInput).focus();}); } 我们请求密钥并根据此密钥删除redisRepository中的对象 RequestMapping(value /delete, method RequestMethod.POST)public ResponseEntityString delete(RequestParam String key) {redisRepository.delete(key);return new ResponseEntity(HttpStatus.OK);}8.演示 在这里我们添加了两部电影 在这里我们删除了一部电影 9.结论 在本教程中我们介绍了Spring Data Redis以及将其连接到Web应用程序以执行CRUD操作的一种方法。 示例应用程序的源代码在Github上 。 翻译自: https://www.javacodegeeks.com/2017/11/intro-redis-spring-boot.html
http://www.zqtcl.cn/news/668960/

相关文章:

  • 如何把旅行社网站做的好看网站创建方案怎么写
  • 织梦网站图标更换宠物网页设计图片
  • 如何查找网站竞争对手的宣传方式北京网站搭建公司电话
  • 北京正规制作网站公司wordpress 获取图片地址
  • 大学路网站建设推广图片素材
  • wordpress 创建网站搜索引擎优化代理
  • 设计网站用什么软件盈江城乡建设局网站
  • 网站建设模式有哪些内容seo品牌
  • 衡水做网站服务商济南如何挑选网站建设公司
  • 全屏的网站制作企业网站欢迎界面素材
  • 视频网站切片怎么做网站建设可自学吗
  • 本地推广平台网站seo优化如何做
  • 网站建设费算费用还是固定资产百度秒收录
  • 企业建站系统营销吧tt团队韩国企业网站设计
  • 上海嘉定网站建设公司有没有知道网址的
  • 电商网站的银行支付接入该怎么做杭州微信小程序外包
  • 余姚网站推广策划案门户网站做等保需要备案哪些
  • 网站关键字优化公司wordpress制作百度地图xml
  • 网站建设进度总结网站文件权限设置
  • 织梦网站如何做地区分站厦门网站代理
  • 模板做网站优缺点网络营销推广公司获客
  • 如何做网站充值用flash做网站超链接
  • 网站图片管理系统临沂百度推广多少钱
  • 渭南建设用地规划查询网站教育局两学一做网站
  • 无锡专业网站制作的公司长春seo技术
  • 东莞做网站哪家最好电商网站支付接口
  • 西安火车站网站建设深圳做百度网站
  • asp网站助手金融学类就业方向及就业前景
  • 用点心做点心官方网站现在手机网站用什么做的好
  • 唐山市路桥建设有限公司网站专门写文章的网站