首页 文章 精选 留言 我的

精选列表

搜索[HTTP/2],共10000篇文章
优秀的个人博客,低调大师

阿里云云计算ACP认证重点梳理2—负载均衡SLB

负载均衡实例是一个运行的负载均衡服务实体。使用负载均衡服务,您必须创建一个负载均衡实例,在实例中添加监听和后端服务器。阿里云提供公网和私网两种类型的负载均衡服务。您可以根据业务场景选择配置对外公开或对内私有的负载均衡,系统会根据您的选择分配公网或私网服务地址。 公网类型的负载均衡实例可以通过Internet将客户端请求按照您制定的监听规则分发到添加的后端服务器ECS上。 在您创建公网负载均衡实例后,系统会为其分配一个公网服务地址,您可以将您的域名和该公网服务地址进行绑定,对外提供服务。 私网类型的负载均衡实例只能在阿里云内部使用,可以转发的请求只能来自具有负载均衡的私网访问权限的客户端。 私网负载均衡实例可以进一步对网络类型进行选择: 经典网络如果您选择的私网负载均衡实例的网络类型是经典网络,那么您的私网负载均衡实例的服务地址由阿里云统一分

优秀的个人博客,低调大师

Java入门项目:学生信息管理系统V2

基于上次的项目进行代码优化重构。 案例功能简介:界面:无(上来还是对用户不友好,哈哈哈)功能: 添加学生信息(学号、姓名、年龄)删除指定学生信息显示所有学生信息 重构主要是对储存方式的改变,由数组储存变为集合储存。 项目跑起来效果 和之前一样,很尴尬,更新的只是储存方式。 一样的结构分层:界面层实现对业务层的调用 业务层 业务层接口 业务层实现:对数据层的调用 数据层 数据层接口 数据层实现 GitHub源代码地址:这里这里 代码文件结构: 学生类: 异常类: 管理接口: 管理实现类: 视图类:

优秀的个人博客,低调大师

阿里云ACE共创空间——大数据方案体验2 Elasticsearch

从阿里云的官方文档中先查看了下Elasticsearch这个产品的特点: 特点及优势 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 商业版X-pack插件,提供企业级权限管控、实时系统监控等强大服务 可弹性扩展到上百台服务器规模,处理PB级结构化或非结构化数据 支持IK analyzer插件 Elastic官方技术支持团队7*24小时技术支持 预置插件 阿里云Elasticsearch预置插件如下(包含但不完全包含): IK Analyzer:IK Analyzer是一个开源的,基于java语言开发的中文分词工具包。是开源社区中处理中分分词非常热门的插件。 pinyin Analyzer:拼音分词器。 Smart Chinese Analysis Plugin:lucene默认的中文分词器。 ICU Analysis plug

优秀的个人博客,低调大师

2 张图,让你一秒理解 CountDownLatch、CyclicBarrier

CountDownLatch(倒数闩,Latch:门闩) 经常用于 监听某些初始化操作,等 初始化线程 全部执行完毕后,才通知 主线程 继续工作 a) 即 一个线程处于阻塞的状态下,他要收到 多少次通知,才能被 苏醒,并继续往下执行 b) 注意:只能阻塞 一个线程 c) "countDown.countDown() 到了 0,并使得 countDown.await() 苏醒" 之后,仍旧能进行 countDown.countDown(),并且不会报错;但是countDown.getCount() 始终为 0 CyclicBarrier(同步屏障,cyclic:周期的,循环的,barrier:屏障) 场景假设:每个线程代表一个 跑步运动员,当 所有运动员 都准备好,才能一起出发,只要有一个人没有准备好,那么大家都要等待他 a) 注意:阻塞的是 每个线程

优秀的个人博客,低调大师

ui2code中的深度学习+传统算法应用

作者:闲鱼技术-云听 背景 在之前的文章中,我们已经提到过团队在UI自动化这方面的尝试,我们的目标是实现基于 单一图片到代码 的转换,在这个过程不可避免会遇到一个问题,就是为了从单一图片中提取出足够的有意义的结构信息,我们必须要拥有从图片中切割出想要区块(文字、按钮、商品图片等)的能力,而传统切割算法遇到复杂背景图片往往就捉襟见肘了(见下图),这个时候,我们就需要有能力把复杂前后景的图片划分为各个层级图层,再交给切割算法去处理,拿到我们期望的结构信息。 经过传统切割算法处理,会无法获取图片结构信息,最终只会当成一张图片处理。 在业界,图片前后景分离一直是个很麻烦的命题,业界目前比较普遍采用的解决方案是计算机视觉算法提取,或是引入人工智能来解决,但直到现在,都没有百分百完美的解决方案。那是否能引入AI来解决这个问题呢,我们来看一下,目前使用

优秀的个人博客,低调大师

第九篇:SpringBoot 2.x全局异常处理

关于对异常的处理也是我们在开发过程一个比较大的问题,今天我们就来看看SpringBoot中如何处理异常。 TempException.java package com.priv.gabriel.exception; import lombok.AllArgsConstructor; import lombok.Data; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-23 * @Description: */ @Data @AllArgsConstructor public class TempException extends RuntimeException { private String code; private String message; } 需要继承RuntimeException事物才会进行回滚 GlobalExceptionHandler.java package com.priv.gabriel.exception.handler; import com.priv.gabriel.exception.TempException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-23 * @Description: */ @ControllerAdvice public class GlobalExceptionHandler { @ResponseBody @ExceptionHandler(value = TempException.class) public TempException tempErrHandler(TempException e){ TempException exception = new TempException(e.getCode(),e.getMessage()); return exception; } } DemoController.java package com.priv.gabriel.controller; import com.priv.gabriel.exception.TempException; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-23 * @Description: */ @RestController @RequestMapping("/demo") public class DemoController { @RequestMapping("/index") public String index(){ throw new TempException("111","没找到对象"); } } 项目下载地址

优秀的个人博客,低调大师

第二篇 : SpringBoot 2.x中使用JdbcTemplate

数据文件 DROP TABLE IF EXISTS users; CREATE TABLE users ( id INT ( 11 ) PRIMARY KEY AUTO_INCREMENT, username VARCHAR ( 255 ) NOT NULL, passwd VARCHAR ( 255 ) ) ENGINE = INNODB DEFAULT CHARSET = utf8; INSERT users VALUES ( NULL, '翠花', '123' ); INSERT users VALUES ( NULL, '王卫国', '123' ); INSERT users VALUES ( NULL, '李小花', '123' ); INSERT users VALUES ( NULL, '王二柱', '123' ); INSERT users VALUES ( NULL, '赵铁蛋', '123' ); 需要引入的依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> application.properties spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql///test spring.datasource.username=root spring.datasource.password=root application.yml spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql///test username: root password: root User.java package com.prvi.gabriel.springbootforjdbctemplate.entity; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ public class User { private long id; private String username; private String password; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } } UserController.java package com.prvi.gabriel.springbootforjdbctemplate.controller; import com.prvi.gabriel.springbootforjdbctemplate.entity.User; import com.prvi.gabriel.springbootforjdbctemplate.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @RequestMapping(name = "/",method = RequestMethod.GET) public List<User> usersList(){ List<User> users = null; return userService.findUsers(); } @RequestMapping(value = "/{id}",method = RequestMethod.GET) public User getUserById(@PathVariable long id){ return userService.findUserById(id); } @RequestMapping(name = "/",method = RequestMethod.POST,produces = "text/plain;charset=utf-8") public String addUser(User user){ System.out.println(user); if(userService.saveUser(user) > 0 ){ return "新增成功"; }else{ return "新增失败"; } } @RequestMapping(name = "/",method = RequestMethod.PUT) public String updateUserById(User user){ if(userService.updateUser(user) > 0 ){ return "修改成功"; }else{ return "修改失败"; } } @RequestMapping(value = "/{id}",method = RequestMethod.DELETE) public String deleteUserById(@PathVariable long id){ if(userService.delUserById(id) > 0 ){ return "删除成功"; }else{ return "删除失败"; } } } UserService.java package com.prvi.gabriel.springbootforjdbctemplate.service; import com.prvi.gabriel.springbootforjdbctemplate.entity.User; import java.util.List; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ public interface UserService { List<User> findUsers(); User findUserById(long id); int saveUser(User user); int delUserById(long id); int updateUser(User user); } UserServiceImpl.java package com.prvi.gabriel.springbootforjdbctemplate.service; import com.prvi.gabriel.springbootforjdbctemplate.entity.User; import com.prvi.gabriel.springbootforjdbctemplate.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ @Service public class UserServiceImpl implements UserService { @Autowired private UserRepository repository; @Transactional(readOnly = true) @Override public List<User> findUsers() { return repository.findUsers(); } @Transactional(readOnly = true) @Override public User findUserById(long id) { return repository.findUserById(id); } @Transactional @Override public int saveUser(User user) { return repository.saveUser(user); } @Transactional @Override public int delUserById(long id) { return repository.delUserById(id); } @Transactional @Override public int updateUser(User user) { return repository.updateUser(user); } } UserRepository.java package com.prvi.gabriel.springbootforjdbctemplate.repository; import com.prvi.gabriel.springbootforjdbctemplate.entity.User; import java.util.List; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ public interface UserRepository { List<User> findUsers(); User findUserById(long id); int saveUser(User user); int delUserById(long id); int updateUser(User user); } UserRepositoryImpl.java package com.prvi.gabriel.springbootforjdbctemplate.repository; import com.prvi.gabriel.springbootforjdbctemplate.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ @Repository public class UserRepositoryImpl implements UserRepository { @Autowired private JdbcTemplate jdbcTemplate; @Override public List<User> findUsers() { return jdbcTemplate.query("select * from users",new UserMapper()); } @Override public User findUserById(long id) { List<User> users = jdbcTemplate.query("select * from users where id = ?",new Object[]{id},new UserMapper()); User user = null; if(users != null&&!users.isEmpty()){ user = users.get(0); } return user; } @Override public int saveUser(User user) { return jdbcTemplate.update("insert into users (username,password) values (?,?)",new Object[]{user.getUsername(),user.getPassword()}); } @Override public int delUserById(long id) { return jdbcTemplate.update("delete from users where id = ?",new Object[]{id}); } @Override public int updateUser(User user) { return jdbcTemplate.update("update users set username = ? , password = ? where id = ?",new Object[]{user.getUsername(),user.getPassword(),user.getId()}); } } class UserMapper implements RowMapper<User>{ @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { User user = new User(); user.setId(resultSet.getLong("id")); user.setUsername(resultSet.getString("username")); user.setPassword(resultSet.getString("password")); return user; } } UserControllerTest.java package com.prvi.gabriel.springbootforjdbctemplate.controller; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class UserControllerTest { @Autowired private WebApplicationContext context; private MockMvc mockMvc; @Before public void setUp(){ mockMvc = MockMvcBuilders.webAppContextSetup(context).build(); } @Test public void usersList() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/users")); } @Test public void getUserById() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/users/1")); } @Test public void addUser() throws Exception { mockMvc.perform(MockMvcRequestBuilders.post("/users").param("username","脚后跟").param("password","123")); } @Test public void updateUserById() throws Exception { mockMvc.perform(MockMvcRequestBuilders.put("/users").param("id","1").param("username","李海军").param("password","456")); } @Test public void deleteUserById() throws Exception { mockMvc.perform(MockMvcRequestBuilders.delete("/users/3")); } }

优秀的个人博客,低调大师

给女友讲讲设计模式——单例模式(JAVA实例)2

前言 曾经有两个人,一个是A,一个是B,他们俩都是这个世界上独立的个体,每个人都是这个世界上独一无二的。这个A呢,在一出生的时候,别人就会把他需要的食物全部给他,然后等到他饿了的时候,就可以直接拿过来吃,但是在他不饿的时候,天天被在身上确是一种负担,人们都管他叫做饿汉。B呢,则是在出生的时候,并没有任何食物给他,但是在他饿的时候,他连伸手都不用,只需要张嘴喊一嗓子,便有人给他送来了食物,就因为他这么懒,所以被叫做懒汉。为什么要讲这个故事呢,接下来你就会明白了。 单例模式 在web开发中,我们经常碰到这样一种情况,我们在整个项目的上下文中,有且只有一个实例,所有线程操纵的都是它,例如说Mybatis中的SqlSessionFactory。如果说只存在一个实例,那么他绝对是不可以new出来,所以他的构造方法一定是私有的。 单例模式从方式上分为懒汉模式,和饿汉模式,这就像是咱们刚刚提到故事里的B和A一样,具体代码如下: package singleton; /** * 这是懒汉模式,但是对于多线程的情况下是不安全的 * * @author luckyharry * */ public class SingletonLazyNotSafe { private SingletonLazyNotSafe() { System.out.println("单例懒汉模式,无锁,实例化--"); } private static SingletonLazyNotSafe singletonLazyNotSafe; public static SingletonLazyNotSafe getInstance() { if (singletonLazyNotSafe == null) { singletonLazyNotSafe = new SingletonLazyNotSafe(); } return singletonLazyNotSafe; } } 这是懒汉模式,但是我们会发现getInstance()方法,多个线程可能会共同竞争,将会导致数据的不统一性,那么我们需要给它添加一个锁,关键字synchronized。 package singleton; /** * 这是懒汉模式,对于多线程的情况下是安全的 但是因为加了锁,所以效率比较低 * * @author luckyharry * */ public class SingletonLazySafe { private SingletonLazySafe() { System.out.println("懒汉模式 有锁 实例化--"); } private static SingletonLazySafe singletonLazySafe; public static synchronized SingletonLazySafe getInstance() { if (singletonLazySafe == null) { singletonLazySafe = new SingletonLazySafe(); } return singletonLazySafe; } } 懒汉模式,他是在当需要获得的时候才实例化,就像是刚刚所说的B那个人一样,实现了懒加载。但是加了锁之后,效率比较低下。 package singleton; public class SingletonHunger { private static SingletonHunger singletonHunger=new SingletonHunger(); // 构造器为私有的,不可以通过new实力化 private SingletonHunger() { System.out.println("初始化 Singleton 饿汉方式--"); } public static SingletonHunger getInstance() { return singletonHunger; } } 饿汉模式我们不再去考虑多线程的问题,但是它却是在类加载的时候便会实例化单例本身,并未实现懒加载。这就像是刚刚说的A一样,在一出生的时候,该实例化的已经被实例化放在那了。 package singleton; public class SingletonInnerClass { // 构造器为私有的,不可以通过new实力化 private SingletonInnerClass() { System.out.println("初始化 Singleton 内部类方式--"); } private static class SingletonCreate { private static SingletonInnerClass singleton = new SingletonInnerClass(); } public static SingletonInnerClass getInstance() { return SingletonCreate.singleton; } } 这种内部类的形式,既解决了锁的问题,又实现了懒加载,是一种懒汉模式的变种。 接下来就是测试类了。 package singleton; /** * 懒汉模式以及饿汉模式的本质区别在于 * 单例的类的初始化的位置,如果我们是在类刚开始初始化的时候就初始化了的化,那么是饿汉加载 * 如果我们是在获取实例的那个方法初始化的化(实现了懒加载),那就是懒汉模式。 * @author luckyharry * */ public class MainTest { public static void main(String[] args) { //获得单例中的实例 SingletonInnerClass.getInstance(); SingletonLazyNotSafe.getInstance(); SingletonLazySafe.getInstance(); SingletonHunger.getInstance(); } } 后记 我会一直以这样通俗易懂的自己能想到的例子,讲解设计模式,最大的启发是来源于《大话设计模式》。非常感觉这本书的作者程杰先生。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册