* 2019/1/14
*/
@Service
public class ProducerServiceImpl implements ProducerService {
private Logger logger = LoggerFactory.getLogger(ProducerServiceImpl.class);
@Autowired
private UserMapper userMapper;
@Autowired
private EurekaInstanceConfig eurekaInstanceConfig;
@Value("${server.port}")
private int serverPort = 0;
@Value("${name}")
private String configName = "";
private String returnMessage = "";
@Override
public String testGet() {
this.logger.info("/testGet, instanceId:{}, host:{}", eurekaInstanceConfig.getInstanceId(), eurekaInstanceConfig.getHostName(false));
setReturnMessage(" Get info is testGet Success");
return returnMessage;
}
@Override
public String testPost(@RequestBody JSONObject jsonRequest) {
this.logger.info("/testPost, instanceId:{}, host:{}", eurekaInstanceConfig.getInstanceId(), eurekaInstanceConfig.getHostName(false));
setReturnMessage(" PostParam is " + jsonRequest.toString());
return returnMessage;
}
@Override
public String testConfig() {
this.logger.info("/testConfig, instanceId:{}, host:{}", eurekaInstanceConfig.getInstanceId(), eurekaInstanceConfig.getHostName(false));
setReturnMessage(" ConfigName is " + configName);
return returnMessage;
}
@Override
public String testRibbon() {
this.logger.info("/testRibbon, instanceId:{}, host:{}", eurekaInstanceConfig.getInstanceId(), eurekaInstanceConfig.getHostName(false));
setReturnMessage(" This is a testRibbon result");
return returnMessage;
}
@Override
public String testFeign() {
this.logger.info("/testFeign, instanceId:{}, host:{}", eurekaInstanceConfig.getInstanceId(), eurekaInstanceConfig.getHostName(false));
setReturnMessage(" This is a testFeign result");
return returnMessage;
}
@Override
public String testHystrix() {
this.logger.info("/testHystrix, instanceId:{}, host:{}", eurekaInstanceConfig.getInstanceId(), eurekaInstanceConfig.getHostName(false));
try {
Thread.sleep(5000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
setReturnMessage(" This is a testHystrix result");
return returnMessage;
}
private void setReturnMessage(String info) {
returnMessage = "Hello, Spring Cloud! My port is " + String.valueOf(serverPort) + info;
}
}
接口实现类里实现了后续各消费者所调用的各个接口功能,所以事先放出来
数据库操作的mapper文件如下:
/**
* @author wkedong
*
* 2019/1/15
*/
public interface UserMapper {
@Select("SELECT * FROM user")
List getAll();
@Select("SELECT * FROM user WHERE id = #{id}")
UserEntity getOne(int id);
@Insert("INSERT INTO user(name,birthday,address) VALUES(#{name}, #{birthday}, #{address})")
void insert(UserEntity user);
@Update("UPDATE user SET name=#{name},birthday=#{birthday},address=#{address} WHERE id =#{id}")
void update(UserEntity user);
@Delete("DELETE FROM user WHERE id =#{id}")
void delete(int id);
}
分别实现了增删查改基础的实现方法
对应的实体类如下:
/**
* @author wkedong
* 测试实体
* 2019/1/15
*/
@RefreshScope
@Component//加入到Spring容器
public class UserEntity {
private String id;
private String name;
@DateTimeFormat(style = "yyyy-MM-dd")
private String birthday;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return super.toString();
}
public class Power {
/**
*Q71-数值的整数次方
*实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
*/
private static boolean InvalidInput=false;
public static void main(
实现两个WEB之间通过session 共享数据
查看tomcat 关于 HTTP Connector 中有个emptySessionPath 其解释如下:
If set to true, all paths for session cookies will be set to /. This can be useful for portlet specification impleme
Parses a raw HTTP request using yii\helpers\Json::decode()
To enable parsing for JSON requests you can configure yii\web\Request::$parsers using this class:
'request' =&g
Sort a linked list in O(n log n) time using constant space complexity.
====analysis=======
mergeSort for singly-linked list
====code======= /**
* Definition for sin
我使用的是ubuntu13.04系统,在安装nginx的时候遇到如下几个问题,然后找思路解决的,nginx 的下载与安装
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar zxvf nginx-1.0.11.tar.gz
./configure
make
make install
安装的时候出现
在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。
1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage
public