Selaa lähdekoodia

Merge branch 'master' of http://10.1.235.20:3000/rest/rest-guide

liutong3 3 vuotta sitten
vanhempi
commit
fd017b982c

+ 39 - 4
ipu-rest-demo/pom.xml

26
    </distributionManagement>
26
    </distributionManagement>
27
    
27
    
28
	<properties>
28
	<properties>
29
        <dockerDirectory>${project.basedir}/docker</dockerDirectory>
29
        <!-- 设置配置文件输出目录 -->
30
        <!-- 设置配置文件输出目录 -->
30
        <output-resources-conf>${project.basedir}/docker/target/conf</output-resources-conf>
31
        <output-resources-conf>${dockerDirectory}/target/conf</output-resources-conf>
31
        <!-- 设置依赖jar输出目录 -->
32
        <!-- 设置依赖jar输出目录 -->
32
        <output-dependency-jar>${project.basedir}/docker/target/lib</output-dependency-jar>
33
        <dockerDirectory>${project.basedir}/docker</dockerDirectory>
33
        <output-dependency-jar>${dockerDirectory}/target/lib</output-dependency-jar>
34
		<env>dev</env>
34
		<env>dev</env>
35
		<skip-test>true</skip-test>
35
		<skip-test>true</skip-test>
36
		<start-class>com.ai.ipu.server.demo.IpuRestDemoStart</start-class>
36
		<start-class>com.ai.ipu.server.demo.IpuRestDemoStart</start-class>
68
				<type>pom</type>
68
				<type>pom</type>
69
				<scope>import</scope>
69
				<scope>import</scope>
70
			</dependency>
70
			</dependency>
71
			<dependency>
72
				<groupId>org.springframework.cloud</groupId>
73
				<artifactId>spring-cloud-dependencies</artifactId>
74
				<version>Greenwich.RELEASE</version>
75
				<type>pom</type>
76
				<scope>import</scope>
77
			</dependency>
78
79
			<dependency>
80
				<groupId>com.alibaba.cloud</groupId>
81
				<artifactId>spring-cloud-alibaba-dependencies</artifactId>
82
				<version>${org.springframework.boot}</version>
83
				<type>pom</type>
84
				<scope>import</scope>
85
			</dependency>
71
		</dependencies>
86
		</dependencies>
72
	</dependencyManagement>
87
	</dependencyManagement>
73
88
117
		    <artifactId>guava</artifactId>
132
		    <artifactId>guava</artifactId>
118
		    <version>${google.plugin}</version>
133
		    <version>${google.plugin}</version>
119
		</dependency>
134
		</dependency>
135
		<dependency>
136
			<groupId>mysql</groupId>
137
			<artifactId>mysql-connector-java</artifactId>
138
			<version>8.0.17</version>
139
		</dependency>
140
		<!-- nacos -->
141
		<dependency>
142
			<groupId>com.alibaba.cloud</groupId>
143
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
144
		</dependency>
145
		<dependency>
146
			<groupId>com.alibaba.cloud</groupId>
147
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
148
		</dependency>
120
	</dependencies>
149
	</dependencies>
121
150
122
	<build>
151
	<build>
123
        <directory>${project.basedir}/docker/target</directory>
152
        <directory>${dockerDirectory}/target</directory>
124
        <plugins>
153
        <plugins>
125
			<plugin>
154
			<plugin>
126
				<groupId>org.springframework.boot</groupId>
155
				<groupId>org.springframework.boot</groupId>
127
				<artifactId>spring-boot-maven-plugin</artifactId>
156
				<artifactId>spring-boot-maven-plugin</artifactId>
157
				<version>2.4.5</version>
158
				    <configuration>
159
                        <image>
160
                            <name>megale/${project.artifactId}:${project.version}</name>
161
                        </image>
162
                     </configuration>			
128
			</plugin>
163
			</plugin>
129
			<!-- 添加docker镜像功能 -->
164
			<!-- 添加docker镜像功能 -->
130
			<plugin>
165
			<plugin>

+ 2 - 0
ipu-rest-demo/readme.md

1
一、启动服务脚本范例:java -Dipu.lic.path=D:/git/rest-guide/ipu-rest-demo/ipu.lic -jar target/ipu-rest-demo.jar  --server.port=8080
1
一、启动服务脚本范例:java -Dipu.lic.path=D:/git/rest-guide/ipu-rest-demo/ipu.lic -jar target/ipu-rest-demo.jar  --server.port=8080
2
注意事项:需要增加证书。参数格式[-Dipu.lic.path]
2
注意事项:需要增加证书。参数格式[-Dipu.lic.path]
3
由于增加了dubbo的consumer代码,需要事先启动dubbo的provider服务后再启动ipu-rest-demo。
4

3
二、区分context-path、servlet-path、static-path,正确配置拦截器的exclude-mapping
5
二、区分context-path、servlet-path、static-path,正确配置拦截器的exclude-mapping
4

6

5
三、待办事项
7
三、待办事项

+ 106 - 0
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/config/NacosConfig.java

1
package com.ai.ipu.server.demo.config;
2
3
4
import java.util.Properties;
5
import java.util.concurrent.Executor;
6
7
import javax.annotation.PostConstruct;
8
9
import org.springframework.beans.factory.annotation.Value;
10
import org.springframework.context.annotation.Bean;
11
import org.springframework.stereotype.Component;
12
13
import com.ai.ipu.basic.string.StringUtil;
14
import com.alibaba.nacos.api.NacosFactory;
15
import com.alibaba.nacos.api.PropertyKeyConst;
16
import com.alibaba.nacos.api.config.ConfigService;
17
import com.alibaba.nacos.api.config.listener.Listener;
18
import com.alibaba.nacos.api.exception.NacosException;
19
20
21
import lombok.extern.slf4j.Slf4j;
22
23
//springcloud也支持在程序中手工注册到配置中心,此时就可以监听到配置中心推送的配置文件。
24
//springcloud已经不再支持@NacosConfigListener,配置了也不生效。
25
@Component
26
@Slf4j
27
public class NacosConfig {
28
	private String service002Url;
29
	private String service002Param;
30
	
31
	@Bean(name="getService002Url")
32
	public String getService002Url() {
33
		return service002Url;
34
	}
35
	
36
	@Bean(name="getService002Param")
37
	public String getService002Param() {
38
		return service002Param;
39
	}
40
	
41
	
42
	@Value("${spring.cloud.nacos.config.server-addr}")
43
    private String nacosConfigServer;
44
	@Value("${spring.cloud.nacos.namespace}")
45
    private String nacosNamespace;
46
	
47
	@Value("${spring.cloud.nacos.dataid}")
48
    private String dataId;
49
	@Value("${spring.cloud.nacos.group}")
50
    private String group;
51
	@Value("${spring.cloud.nacos.timeout}")
52
    private long timeout;
53
	
54
	@PostConstruct
55
	public void initConfigServer() {
56
		try {
57
	        Properties properties = new Properties();
58
	        if (!StringUtil.isEmpty(nacosNamespace))
59
	        	properties.put(PropertyKeyConst.NAMESPACE, nacosNamespace);
60
	        properties.put(PropertyKeyConst.SERVER_ADDR, nacosConfigServer);
61
	        ConfigService configService = NacosFactory.createConfigService(properties);
62
	        String content = configService.getConfig(dataId, group, timeout);
63
	        //从配置中心获取到指定配置,需要自己解析后给service002Url、service002Param赋值
64
	        log.debug(content);
65
	        dealConfigServerConfig(content);
66
	        configService.addListener(dataId, group, new Listener() {
67
	            @Override
68
	            public void receiveConfigInfo(String configInfo) {
69
	            	//从配置中心获取到推送来的更新配置信息,需要自己解析给service002Url、service002Param赋值
70
	            	log.debug(configInfo);
71
	            	dealConfigServerConfig(configInfo);
72
	            }
73
	
74
	            @Override
75
	            public Executor getExecutor() {
76
	                return null;
77
	            }
78
	        });
79
	    } catch (NacosException e) {
80
	        log.error(e.getMessage());
81
	    }
82
	}
83
	
84
	private void dealConfigServerConfig(String configInfo) {
85
		if (StringUtil.isEmpty(configInfo))
86
			return;
87
		String[] configs = configInfo.split("\n\r|\n|\r|\r\n");
88
		int i=0;
89
		for (;i<configs.length;i++) {
90
			if (!StringUtil.isEmpty(configs[i]))
91
			{
92
				if (configs[i].indexOf("service002Url")>=0)
93
				{
94
					String[] urls = configs[i].split("=");
95
					service002Url = urls[1];
96
				}
97
				if (configs[i].indexOf("service002Param")>=0)
98
				{
99
					String[] params = configs[i].split("=");
100
					service002Param = params[1];
101
				}
102
			}
103
		}
104
	}
105
	
106
}

+ 17 - 0
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/config/RestConsumerConfiguration.java

1
package com.ai.ipu.server.demo.config;
2
3
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
4
import org.springframework.context.annotation.Bean;
5
import org.springframework.context.annotation.Configuration;
6
import org.springframework.web.client.RestTemplate;
7
8
9
@Configuration
10
public class RestConsumerConfiguration {
11
12
	@LoadBalanced
13
    @Bean
14
    public RestTemplate ipuRestTemplate() {
15
        return new RestTemplate();
16
    }
17
}

+ 2 - 2
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/cache/RedisController.java

68
			LOGGER.debug(result.getString("result"));				
68
			LOGGER.debug(result.getString("result"));				
69
		} catch (Exception e)
69
		} catch (Exception e)
70
		{
70
		{
71
			String errorMsg = "从redis中获取" + key + "错误:" + e.getMessage();
71
			String errorMsg = "从redis中获取" + key + "错误:" + e.toString();
72
			LOGGER.error(errorMsg);
72
			LOGGER.error(errorMsg);
73
			result.put("result", errorMsg);
73
			result.put("result", errorMsg);
74
		}finally {
74
		}finally {
94
			LOGGER.debug(result.getString("result"));		
94
			LOGGER.debug(result.getString("result"));		
95
		} catch (Exception e)
95
		} catch (Exception e)
96
		{
96
		{
97
			String errorMsg = "从redis中获取" + key + "错误:" + e.getMessage();
97
			String errorMsg = "从redis中获取" + key + "错误:" + e.toString();
98
			LOGGER.error(errorMsg);
98
			LOGGER.error(errorMsg);
99
			result.put("result", errorMsg);
99
			result.put("result", errorMsg);
100
		}finally {
100
		}finally {

+ 37 - 5
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/db/DbTableController.java

7
import org.springframework.web.bind.annotation.RequestMapping;
7
import org.springframework.web.bind.annotation.RequestMapping;
8
import org.springframework.web.bind.annotation.ResponseBody;
8
import org.springframework.web.bind.annotation.ResponseBody;
9

9

10
import com.ai.ipu.basic.log.ILogger;
11
import com.ai.ipu.basic.log.IpuLoggerFactory;
12
import com.ai.ipu.basic.util.IpuUtility;
10
import com.ai.ipu.common.date.TimeUtil;
13
import com.ai.ipu.common.date.TimeUtil;
11
import com.ai.ipu.data.JMap;
14
import com.ai.ipu.data.JMap;
12
import com.ai.ipu.data.impl.JsonMap;
15
import com.ai.ipu.data.impl.JsonMap;
24
@Controller
27
@Controller
25
@RequestMapping("/db/table")
28
@RequestMapping("/db/table")
26
public class DbTableController {
29
public class DbTableController {
30
	private static final transient ILogger LOGGER = IpuLoggerFactory.createLogger(DbTableController.class);
27
    private String connName = "test";
31
    private String connName = "test";
28
    private String druidConnName = "test_druid";
32
    private String druidConnName = "test_druid";
29
    private String tableName = "ipu_db_demo";
33
    private String tableName = "ipu_db_demo";
37
    @RequestMapping("/select")
41
    @RequestMapping("/select")
38
    public JMap select(JMap param) throws Exception {
42
    public JMap select(JMap param) throws Exception {
39
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
43
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
44
        int pk = param.getInt("pk", 0);
45
        LOGGER.info("select pk is:" + pk);
40
        JMap data = new JsonMap();
46
        JMap data = new JsonMap();
41
        data.put("pk", 0);
47
        data.put("pk", pk);
42
        Map<String, Object> re = dao.select(tableName, data);
48
        Map<String, Object> re = dao.select(tableName, data);
43
        JMap result = new JsonMap();
49
        JMap result = new JsonMap();
44
        result.put("result", re);
50
        result.put("result", re);
72
    public JMap insert(JMap param) throws Exception {
78
    public JMap insert(JMap param) throws Exception {
73
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
79
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
74
        int pk = bizDao.takePK();
80
        int pk = bizDao.takePK();
75
        
81
        LOGGER.info("insert pk is:" + pk);
76
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
82
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
77
        JMap data = new JsonMap();
83
        JMap data = new JsonMap();
78
        data.put("pk", pk);
84
        data.put("pk", pk);
141
    @RequestMapping("/delete")
147
    @RequestMapping("/delete")
142
    public JMap delete(JMap params) throws Exception {
148
    public JMap delete(JMap params) throws Exception {
143
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
149
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
144
        int pk = bizDao.takePK();
145
        
150
        int pk = params.getInt("pk", bizDao.takePK()-1);
151
        LOGGER.info("delete pk is:" + pk);
146
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
152
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
147
        JMap data = new JsonMap();
153
        JMap data = new JsonMap();
148
        data.put("pk", pk-1);
154
        data.put("pk", pk);
149
        
155
        
150
        Map<String, Object> content = dao.select(tableName, data);
156
        Map<String, Object> content = dao.select(tableName, data);
151
        int re = dao.delete(tableName, data);
157
        int re = dao.delete(tableName, data);
196
        result.put("result", re);
202
        result.put("result", re);
197
        return result;
203
        return result;
198
    }
204
    }
205
    
206
    @ResponseBody
207
    @RequestMapping("/rollback")
208
    public JMap rollback(JMap param) throws Exception {
209
        BizSqlDao bizDao = IpuDaoManager.takeDao(BizSqlDao.class, connName);
210
        int pk = bizDao.takePK();
211
        LOGGER.info("insert pk is:" + pk);
212
        CommonTableDao dao = IpuDaoManager.takeDao(CommonTableDao.class, connName);
213
        JMap data = new JsonMap();
214
        data.put("pk", pk);
215
        data.put("string_type", "字符串"+pk);
216
        data.put("int_type", pk);
217
        data.put("decimal_type", "10."+pk);
218
        data.put("date_type", TimeUtil.getSysDate());
219
        data.put("datetime_type", TimeUtil.getSysTime());
220
        int re = dao.insert(tableName, data);
221
        
222
        IpuUtility.error("rollback test");
223
        
224
        JMap conds = new JsonMap();
225
        conds.put("pk", pk);
226
        JMap result = new JsonMap();
227
        result.put("result_number", re);
228
        result.put("content", dao.select(tableName, conds));
229
        return result;
230
    }
199
}
231
}

+ 30 - 8
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/dubbo/DubboControl.java

5
import org.springframework.web.bind.annotation.RequestMapping;
5
import org.springframework.web.bind.annotation.RequestMapping;
6
import org.springframework.web.bind.annotation.ResponseBody;
6
import org.springframework.web.bind.annotation.ResponseBody;
7

7

8
import com.ai.ipu.basic.log.ILogger;
9
import com.ai.ipu.basic.log.IpuLoggerFactory;
8
import com.ai.ipu.basic.reflect.ReflectUtil;
10
import com.ai.ipu.basic.reflect.ReflectUtil;
9
import com.ai.ipu.basic.util.IpuUtility;
11
import com.ai.ipu.basic.util.IpuUtility;
10
import com.ai.ipu.data.JMap;
11
import com.ai.ipu.test.springboot.service.IBizService;
12
import com.ai.ipu.test.springboot.service.IBizService;
13
import com.ai.ipu.test.springboot.service.IpuService;
14
import com.ailk.common.data.IData;
12

15

13
/**
16
/**
14
 * @author huangbo@asiainfo.com
17
 * @author huangbo@asiainfo.com
18
 */
21
 */
19
@Controller
22
@Controller
20
@RequestMapping("/dubbo")
23
@RequestMapping("/dubbo")
21
public class DubboControl {
24
public class DubboConsumerController {
25
	private static final transient ILogger logger = IpuLoggerFactory.createLogger(DubboConsumerController.class);
26
	
22
	@Reference
27
	@Reference
23
	IBizService bizService;
28
	IBizService bizService;
24
	
29
	
30
	@Reference
31
    IpuService ipuService;
32
    
33
	@ResponseBody
34
    @RequestMapping("/index")
35
    public String index(String data) {
36
        logger.info("I am ConsumerController" + System.getProperty("user.home"));
37
        if(data==null||"".equals(data)){
38
            data="你啥都没有输入!";
39
        }
40

41
        logger.info("你输入的是"+data);
42

43
        ipuService.genaratePlumelog(data);
44
        logger.info("调用dubbo结束...........");
45
        return data;
46
    }
25
    /**
47
    /**
26
     * @author huangbo@asiainfo.com
48
     * @author huangbo@asiainfo.com
27
     * @title: callBizService
49
     * @title: callBizService
29
     */
51
     */
30
    @ResponseBody
52
    @ResponseBody
31
    @RequestMapping("/biz")
53
    @RequestMapping("/biz")
32
    public JMap callBizService(JMap params) {
54
    public IData callBizService(IData params) {
33
//        IBizService bizService = (IBizService)SpringManager.takeSpringContext().getBean("bizService"); // 获取远程服务代理
55
//        IBizService bizService = (IBizService)SpringManager.takeSpringContext().getBean("bizService"); // 获取远程服务代理
34
    	JMap result = bizService.queryUserInfo(params); // 执行远程方法
56
    	IData result = bizService.queryUserInfo(params); // 执行远程方法
35
        result.put("rest_result", "测试biz类型服务调用");
57
        result.put("rest_result", "测试biz类型服务调用");
36
        return result;
58
        return result;
37
    }
59
    }
43
     */
65
     */
44
    @ResponseBody
66
    @ResponseBody
45
    @RequestMapping("/common")
67
    @RequestMapping("/common")
46
    public JMap callCommonService(JMap params) {
68
    public IData callCommonService(IData params) {
47
//        String serviceName = params.getString("service_name");
69
//        String serviceName = params.getString("service_name");
48
        String methodName = params.getString("method_name");
70
        String methodName = params.getString("method_name");
49
//        Object service = SpringManager.takeSpringContext().getBean(serviceName);
71
//        Object service = SpringManager.takeSpringContext().getBean(serviceName);
50
        JMap result = null;
72
        IData result = null;
51
        try {
73
        try {
52
            result = (JMap)ReflectUtil.invokeMethod(bizService, methodName, new Object[]{params}, new Class<?>[]{JMap.class});
74
            result =(IData) ReflectUtil.invokeMethod(bizService, methodName, new Object[]{params}, new Class<?>[]{IData.class});
53
            result.put("rest_result", "测试common类型服务调用");
75
            result.put("rest_result", "测试common类型服务调用");
54
        }catch (Exception e) {
76
        }catch (Exception e) {
55
            // TODO Auto-generated catch block
77
            // TODO Auto-generated catch block
56
            IpuUtility.error( methodName + "方法调用异常:" + e.getMessage());
78
            IpuUtility.error( methodName + "方法调用异常:" + e.toString());
57
        }
79
        }
58
        return result;
80
        return result;
59
    }
81
    }

+ 6 - 6
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/nacos/NacosController.java

45
 */
45
 */
46
@Controller
46
@Controller
47
@RequestMapping("/nacos/")
47
@RequestMapping("/nacos/")
48
public class NacosController {
49
	private static final ILogger LOGGER = IpuLoggerFactory.createLogger(NacosController.class);
48
public class IpuSpringNacosController {
49
	private static final ILogger LOGGER = IpuLoggerFactory.createLogger(IpuSpringNacosController.class);
50
	
50
	
51
	@Autowired
51
	@Autowired
52
	private IpuNacosServiceImpl service;
52
	private IpuNacosServiceImpl service;
85
	
85
	
86
		} catch (Exception e)
86
		} catch (Exception e)
87
		{
87
		{
88
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuCacheDataid() + "错误:" + e.getMessage();
88
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuCacheDataid() + "错误:" + e.toString();
89
			LOGGER.error(errorMsg);
89
			LOGGER.error(errorMsg);
90
			result.put("result", errorMsg);
90
			result.put("result", errorMsg);
91
		}finally {
91
		}finally {
145
		{
145
		{
146
			if (noSql != null)
146
			if (noSql != null)
147
				noSql.abortTransaction();
147
				noSql.abortTransaction();
148
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuNosqlDataid() + "错误:" + e.getMessage();
148
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuNosqlDataid() + "错误:" + e.toString();
149
			LOGGER.error(errorMsg);
149
			LOGGER.error(errorMsg);
150
			result.put("result", errorMsg);
150
			result.put("result", errorMsg);
151
		}finally {
151
		}finally {
220
	
220
	
221
		} catch (Exception e)
221
		} catch (Exception e)
222
		{
222
		{
223
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDfsDataid() + "错误:" + e.getMessage();
223
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDfsDataid() + "错误:" + e.toString();
224
			LOGGER.error(errorMsg);
224
			LOGGER.error(errorMsg);
225
			result.put("result", errorMsg);
225
			result.put("result", errorMsg);
226
		}finally {
226
		}finally {
278
	
278
	
279
		} catch (Exception e)
279
		} catch (Exception e)
280
		{
280
		{
281
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDatabaseDataid() + "错误:" + e.getMessage();
281
			String errorMsg = "从nacos server:" + IpuNacosConfig.getNacosServerAddr() + "同步" + nacosConfig.getIpuDatabaseDataid() + "错误:" + e.toString();
282
			LOGGER.error(errorMsg);
282
			LOGGER.error(errorMsg);
283
			result.put("result", errorMsg);
283
			result.put("result", errorMsg);
284
		}finally {
284
		}finally {

+ 53 - 0
ipu-rest-demo/src/main/java/com/ai/ipu/server/demo/control/nacos/SpringCloudConsumerController.java

1
package com.ai.ipu.server.demo.control.nacos;
2
3
import java.util.Map;
4
5
6
import org.slf4j.Logger;
7
import org.slf4j.LoggerFactory;
8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.beans.factory.annotation.Value;
10
import org.springframework.cloud.context.config.annotation.RefreshScope;
11
import org.springframework.web.bind.annotation.GetMapping;
12
import org.springframework.web.bind.annotation.RequestMapping;
13
import org.springframework.web.bind.annotation.ResponseBody;
14
import org.springframework.web.bind.annotation.RestController;
15
import org.springframework.web.client.RestTemplate;
16
17
import com.ai.ipu.server.demo.config.NacosConfig;
18
import com.alibaba.nacos.api.exception.NacosException;
19
import com.google.common.collect.Maps;
20
21
22
@RestController
23
@RefreshScope
24
@RequestMapping("/nacos/discovery/restConsumer")
25
public class SpringCloudConsumerController {
26
	private static final Logger logger = LoggerFactory.getLogger(SpringCloudConsumerController.class);
27
28
    @Autowired
29
    private RestTemplate restTemplate;
30
31
    
32
    @Value("${spring.application.name}")
33
    private String appName;
34
    
35
    @Autowired
36
	NacosConfig config;
37
    
38
	@ResponseBody
39
    @GetMapping(value = "/service002")
40
    public String service002() throws NacosException {
41
		
42
		try {
43
			/*用于ipu-spring-plumlog
44
			Map<String, Object> variables = Maps.newHashMap();
45
			variables.put("message", appName);*/
46
			return restTemplate.getForObject("http://ipu-nacos-cloud-provider" + config.getService002Url() + "?message=" + appName , String.class);
47
		} catch (Exception e) {
48
			logger.error(e.getMessage());
49
		}
50
		
51
        return null;
52
    }
53
}

+ 0 - 33
ipu-rest-demo/src/main/java/com/ai/ipu/service/demo/IBizService.java

1
package com.ai.ipu.service.demo;
2

3
import com.ailk.common.data.IData;
4

5
/**
6
 * @author huangbo@asiainfo.com
7
 * @team IPU
8
 * @date 2018年10月23日下午7:25:11
9
 * @desc 业务服务调用案例
10
 */
11
public interface IBizService {
12
    
13
    /**
14
     * @author huangbo@asiainfo.com
15
     * @title: queryUserInfo
16
     * @desc: 查询用户信息
17
     */
18
    public IData queryUserInfo(IData param);
19
    
20
    /**
21
     * @author huangbo@asiainfo.com
22
     * @title: queryUserInfo
23
     * @desc: 查询用户列表
24
     */
25
    public IData queryUserList(IData param);
26
    
27
    /**
28
     * @author huangbo@asiainfo.com
29
     * @title: triggerException
30
     * @desc: 触发业务异常
31
     */
32
    public IData triggerException(IData param);
33
}

+ 8 - 3
ipu-rest-demo/src/main/java/com/ipu/server/bean/LoginBean.java

2

2

3
import java.awt.image.BufferedImage;
3
import java.awt.image.BufferedImage;
4

4

5
import com.ai.ipu.basic.log.ILogger;
6
import com.ai.ipu.basic.log.IpuLoggerFactory;
5
import com.ai.ipu.server.util.MobileUtility;
7
import com.ai.ipu.server.util.MobileUtility;
6
import com.ailk.common.data.IData;
8
import com.ailk.common.data.IData;
7
import com.ailk.common.data.impl.DataMap;
9
import com.ailk.common.data.impl.DataMap;
13
import com.ipu.server.util.ImageVerify;
15
import com.ipu.server.util.ImageVerify;
14

16

15
public class LoginBean extends IpuAppBean {
17
public class LoginBean extends IpuAppBean {
18
	private static final ILogger LOGGER = IpuLoggerFactory.createLogger(LoginBean.class);
16
	
19
	
17
	/**
20
	/**
18
	 * 初始化登陆页面,获取验证码
21
	 * 初始化登陆页面,获取验证码
19
	 */
22
	 */
20
	public IData init(IData prama) throws Exception {
23
	public IData init(IData prama) throws Exception {
21
		String verifyCode = ImageVerify.getVerifyCode(6, 2);
24
		String verifyCode = ImageVerify.getVerifyCode(6, 2);
25
		
22
		BufferedImage image = ImageVerify.getImageVerify(verifyCode);
26
		BufferedImage image = ImageVerify.getImageVerify(verifyCode);
23
		String imageVerifyCode = ImageVerify.getImageBase64(image);
27
		String imageVerifyCode = ImageVerify.getImageBase64(image);
24

28

30
		IData resultData = new DataMap();
34
		IData resultData = new DataMap();
31
		resultData.put("VERIFY_IMG", imageVerifyCode);
35
		resultData.put("VERIFY_IMG", imageVerifyCode);
32
		resultData.put(Constant.Session.SESSION_ID, sessionId);
36
		resultData.put(Constant.Session.SESSION_ID, sessionId);
37
		resultData.put("VARIFY_CODE", verifyCode);
33
		return resultData;
38
		return resultData;
34
	}
39
	}
35

40

40
		String verifyCode = ImageVerify.getVerifyCode(6, 2);
45
		String verifyCode = ImageVerify.getVerifyCode(6, 2);
41
		BufferedImage image = ImageVerify.getImageVerify(verifyCode);
46
		BufferedImage image = ImageVerify.getImageVerify(verifyCode);
42
		String imageVerifyCode = ImageVerify.getImageBase64(image);
47
		String imageVerifyCode = ImageVerify.getImageBase64(image);
43
		getContextData().setVerifyCode(verifyCode.toUpperCase());
48
//		getContextData().setVerifyCode(verifyCode.toUpperCase());
44
		IData resultData = new DataMap();
49
		IData resultData = new DataMap();
45
		resultData.put("VERIFY_IMG", imageVerifyCode);
50
		resultData.put("VERIFY_IMG", imageVerifyCode);
46
		return resultData;
51
		return resultData;
51
	 */
56
	 */
52
	public IData doLogin(IData param) throws Exception {
57
	public IData doLogin(IData param) throws Exception {
53
		/* 校验验证码 */
58
		/* 校验验证码 */
54
		String verifyCode = getContextData().getVerifyCode();
59
		String verifyCode = (String)getContextData().getMapData().get("VERIFY_CODE");
55
		String clientVerifyCode = param.getString("VARIFY_CODE");
60
		String clientVerifyCode = param.getString("VARIFY_CODE");
56
		if (clientVerifyCode == null) {
61
		if (clientVerifyCode == null) {
57
			MobileUtility.error("验证码忘记填写了,重新输入验证码~");
62
			MobileUtility.error("验证码忘记填写了,重新输入验证码~");
66
		IData resultData = new DataMap();
71
		IData resultData = new DataMap();
67
		boolean isLoginSuccess = true;
72
		boolean isLoginSuccess = true;
68
		if (isLoginSuccess) {
73
		if (isLoginSuccess) {
69
			getContextData().setUserName(userName);
74
			getContextData().getMapData().put("USER_NAME", userName);
70
			resultData.put("LOGIN_SUCCESS", true);
75
			resultData.put("LOGIN_SUCCESS", true);
71
		} else {
76
		} else {
72
			resultData.put("LOGIN_SUCCESS", false);
77
			resultData.put("LOGIN_SUCCESS", false);

+ 4 - 4
ipu-rest-demo/src/main/java/com/ipu/server/core/bean/IpuAppBean.java

1
package com.ipu.server.core.bean;
1
package com.ipu.server.core.bean;
2

2

3
import com.ai.ipu.server.frame.bean.AbstractBean;
3
import com.ai.ipu.server.frame.bean.AbstractBean;
4
import com.ipu.server.core.context.IpuContextData;
4
import com.ai.ipu.server.frame.context.impl.DefaultJsonContextData;
5

5

6
public class IpuAppBean extends AbstractBean {
6
public class IpuAppBean extends AbstractBean {
7
	@Override
8
	protected IpuContextData getContextData() throws Exception {
9
		return (IpuContextData)(getContext().getContextData());
7

8
	protected DefaultJsonContextData getContextData() throws Exception {
9
		return (DefaultJsonContextData) getContext().getContextData();
10
	}
10
	}
11
}
11
}

+ 2 - 1
ipu-rest-demo/src/main/java/com/ipu/server/core/context/IpuContextData.java

1
package com.ipu.server.core.context;
1
package com.ipu.server.core.context;
2

2

3
import com.ai.ipu.server.frame.context.impl.DefaultContextData;
3
import com.ai.ipu.server.frame.context.impl.DefaultContextData;
4
import com.ai.ipu.server.frame.context.impl.DefaultJsonContextData;
4

5

5
@SuppressWarnings("serial")
6
@SuppressWarnings("serial")
6
public class IpuContextData extends DefaultContextData {
7
public class IpuContextData extends DefaultJsonContextData {
7
	public IpuContextData() {
8
	public IpuContextData() {
8
	}
9
	}
9

10


+ 2 - 3
ipu-rest-demo/src/main/java/com/ipu/server/core/session/IpuSessionManager.java

4
import com.ai.ipu.server.frame.session.impl.AbstractSessionManager;
4
import com.ai.ipu.server.frame.session.impl.AbstractSessionManager;
5
import com.ai.ipu.server.util.MobileUtility;
5
import com.ai.ipu.server.util.MobileUtility;
6
import com.ailk.common.data.IData;
6
import com.ailk.common.data.IData;
7
import com.ipu.server.core.context.IpuContextData;
8

7
import com.ai.ipu.server.frame.context.impl.DefaultJsonContextData;
9
public class IpuSessionManager extends AbstractSessionManager {
8
public class IpuSessionManager extends AbstractSessionManager {
10

9

11
	/**
10
	/**
14
	@Override
13
	@Override
15
	public void customVerify(String paramString, IData paramIData, IContextData paramIContextData) throws Exception {
14
	public void customVerify(String paramString, IData paramIData, IContextData paramIContextData) throws Exception {
16
		String userName = paramIData.getString("USER_NAME");
15
		String userName = paramIData.getString("USER_NAME");
17
		String contextUserName = ((IpuContextData)paramIContextData).getUserName();
16
		String contextUserName = (String)((DefaultJsonContextData)paramIContextData).get("USER_NAME");
18
		if(userName == null || !userName.equals(contextUserName)){
17
		if(userName == null || !userName.equals(contextUserName)){
19
			MobileUtility.error("非法操作,请重新登陆!", SESSION_ERROR_CODE);
18
			MobileUtility.error("非法操作,请重新登陆!", SESSION_ERROR_CODE);
20
		}
19
		}

+ 12 - 6
ipu-rest-demo/src/main/resources/dev/application.properties

49
#spring.devtools.restart.additional-paths=src/main/java
49
#spring.devtools.restart.additional-paths=src/main/java
50
#spring.devtools.restart.exclude=WEB-INF/**
50
#spring.devtools.restart.exclude=WEB-INF/**
51

51

52

52
#使用zookeeper当注册中心
53
spring.main.allow-bean-definition-overriding=true
53
spring.main.allow-bean-definition-overriding=true
54
dubbo.application.name=dubbo_consumer
55
dubbo.protocol.name=dubbo
54
#dubbo.application.name=dubbo_consumer
55
#dubbo.protocol.name=dubbo
56
dubbo.protocol.port=-1
56
dubbo.protocol.port=-1
57
dubbo.consumer.check=false
57
dubbo.consumer.check=false
58
dubbo.registry.check=false
59
dubbo.registry.address=zookeeper://47.105.160.21:2108
60
dubbo.registry.client=curator
58
#dubbo.registry.check=false
59
#dubbo.registry.address=zookeeper://47.105.160.21:2108
60
#dubbo.registry.client=curator
61

62
#使用nacos当注册中心
63
dubbo.application.name=dubbo_consumer
64
dubbo.registry.address=nacos://47.105.160.21:8849
65
dubbo.protocol.name=dubbo
66


+ 11 - 0
ipu-rest-demo/src/main/resources/dev/bootstrap.properties

1
2
spring.cloud.nacos.config.server-addr=47.105.160.21:8849
3
spring.cloud.nacos.config.prefix=example
4
spring.cloud.nacos.config.file-extension=properties
5
spring.cloud.nacos.config.group=DEFAULT_GROUP
6
spring.cloud.nacos.dataid=example
7
spring.cloud.nacos.group=DEFAULT_GROUP
8
spring.cloud.nacos.timeout=10000
9
spring.cloud.nacos.namespace
10
spring.cloud.nacos.discovery.server-addr=47.105.160.21:8849
11

+ 7 - 1
ipu-rest-demo/src/main/resources/sql/com/ai/ipu/ipu-db-demo.xml

7
		</select>
7
		</select>
8
		]]>
8
		]]>
9
	</sql>
9
	</sql>
10
	
10
	<sql name="delete">
11
		<![CDATA[
12
		<select id="delete" resultType="java.util.Map">
13
	        DELETE FROM  ipu_db_demo WHERE pk=#{pk}
14
		</select>
15
		]]>
16
	</sql>
11
	<sql name="insert">
17
	<sql name="insert">
12
		<![CDATA[
18
		<![CDATA[
13
		<insert id="insert" resultType="java.util.Map">
19
		<insert id="insert" resultType="java.util.Map">