搭建工程中遇见的问题

这个东西是用来做远程文件本地缓存使用的,建议不要删除。eclipse有一个“Remote System ExExplorer”的Perspective,里边有FTP、ssh、Linux、Unix、Windows、Telnet等各种远程终端功能,这些功能依赖于“RemoteSystemsTempFiles”。

作者:甘明
链接:http://www.zhihu.com/question/26048817/answer/51895146
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

具体作用不知道,删除的方法是有的。
1、打开Windows-->Preferences-->General-->Startup and Shutdown将“RSE UI”的选中状态去掉,关闭Eclipse;
2、打开Eclipse工作空间将“RemoteSystemsTempFiles”项目删除掉后再启动Eclipse程序,就不会再自动生成了。
亲测有效。

注解:
@RestController
@Slf4j
从Spring4开始,spring以Servlet3为进行开发,如果用Spring MVC 测试框架的话需要指定Servlet3兼容的jar包(因为其Mock的对象都是基于Servlet3的)。另外为了方便Rest开发,通过新的@RestController指定在控制器上,这样就不需要在每个@RequestMapping方法上加 @ResponseBody了。而且添加了一个AsyncRestTemplate ,支持REST客户端的异步无阻塞支持。

1、@RestController
01. @RestController 
02. public class UserController { 
03.     private UserService userService; 
04.     @Autowired 
05.     public UserController(UserService userService) { 
06.         this.userService = userService; 
07.     } 
08.     @RequestMapping("/test") 
09.       public User view() { 
10.         User user = new User(); 
11.         user.setId(1L); 
12.         user.setName("haha"); 
13.         return user; 
14.     } 
15.  
16.     @RequestMapping("/test2") 
17.     public String view2() { 
18.         return "{\"id\" : 1}"; 
19.     } 
20. } 
其实现就是在@@RestController中加入@ResponseBody:


01. @org.springframework.stereotype.Controller 
02. @org.springframework.web.bind.annotation.ResponseBody 
03. public @interface RestController { 
04. }


这样当你开发Rest服务器端的时候,spring-mvc配置文件需要的代码极少,可能就仅需如下一行:
01. <context:component-scan base-package="com.sishuok.spring4"/> 
02. <mvc:annotation-driven/> 

2、mvc:annotation-driven配置变化

统一风格;将 enableMatrixVariables改为enable-matrix-variables属性;将ignoreDefaultModelOnRedirect改为ignore-default-model-on-redirect。


3、提供AsyncRestTemplate用于客户端非阻塞异步支持。

3.1、服务器端

对于服务器端的springmvc开发可以参考https://github.com/zhangkaitao/servlet3-showcase中的chapter3-springmvc


01. @RestController 
02. public class UserController { 
03.     private UserService userService; 
04.     @Autowired 
05.     public UserController(UserService userService) { 
06.         this.userService = userService; 
07.     } 
08.     @RequestMapping("/api") 
09.       public Callable<User> api() { 
10.         System.out.println("=====hello"); 
11.         return new Callable<User>() { 
12.             @Override 
13.             public User call() throws Exception { 
14.                 Thread.sleep(10L * 1000); //暂停两秒 
15.                 User user = new User(); 
16.                 user.setId(1L); 
17.                 user.setName("haha"); 
18.                 return user; 
19.             } 
20.         }; 
21.     } 
22. } 


非常简单,服务器端暂停10秒再返回结果(但是服务器也是非阻塞的)。具体参考我github上的代码。

3.2、客户端
01. public static void main(String[] args) { 
02.     AsyncRestTemplate template = new AsyncRestTemplate(); 
03.     //调用完后立即返回(没有阻塞) 
04.     ListenableFuture<ResponseEntity<User>> future = template.getForEntity("http://localhost:9080/spring4/api", User.class); 
05.     //设置异步回调 
06.     future.addCallback(new ListenableFutureCallback<ResponseEntity<User>>() { 
07.         @Override 
08.         public void onSuccess(ResponseEntity<User> result) { 
09.             System.out.println("======client get result : " + result.getBody()); 
10.         } 
11.  
12.         @Override 
13.         public void onFailure(Throwable t) { 
14.             System.out.println("======client failure : " + t); 
15.         } 
16.     }); 
17.     System.out.println("==no wait"); 
18. } 

此处使用Future来完成非阻塞,这样的话我们也需要给它一个回调接口来拿结果; Future和Callable是一对,一个消费结果,一个产生结果。调用完模板后会立即返回,不会阻塞;有结果时会调用其回调。

AsyncRestTemplate默认使用SimpleClientHttpRequestFactory,即通过Java.net.HttpURLConnection实现;另外我们也可以使用apache的http components;使用template.setAsyncRequestFactory(new HttpComponentsAsyncClientHttpRequestFactory());设置即可。


此处使用Future来完成非阻塞,这样的话我们也需要给它一个回调接口来拿结果; Future和Callable是一对,一个消费结果,一个产生结果。调用完模板后会立即返回,不会阻塞;有结果时会调用其回调。



AsyncRestTemplate默认使用SimpleClientHttpRequestFactory,即通过java.net.HttpURLConnection实现;另外我们也可以使用apache的http components;使用template.setAsyncRequestFactory(new HttpComponentsAsyncClientHttpRequestFactory());设置即可

一、发现问题
需要执行某一行语句时,需要选中该行语句,点击F8才行。

二、解决问题
中文版:工具—>首选项—>SQL窗口—>自动选择语句
英文版:tools->preferences->sql window->autoSelect Statement
这样光标放到某一行,点击F8就可执行该行,不要全选该行。

三、注意点
该语句必须以分号结尾,否则达不到效果。

@order,使用注解方式使bean的加载顺序得到控制

@order(value=1)

@order(value=2)


如何用cmd命令连接oracle数据库
输入sqlplus,然后提示输入用户名,直接输入user/password@database就可以了,然后出来sql>,就可以输入各种语句了

通过cmd的命令窗口连接mysql,只需要在命令行中输入 mysql -uroot -p123456 .它会出现这样的提示:“mysql不是内部或外部命令”。解决办法是在环境变量的path路径下加入 C:\Program Files\MySQL\MySQL Server 5.6\bin。

如下图:

\

将mysql配置到环境变量后,在cmd的命令窗口输入 “mysql -uroot -p123456”即可。如下图:

\

到此就可以通过cmd命令连接mysql数据库了。需要注意的是-u后面是连接数据库的用户名,没有空格。-p后面是连接密码,也没有空格。

命令为:mysql -uroot -p123456

如果你在命令后面加了分号会出现:

C:\Users\Administrator>mysql -uroot -p123456;
Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y
ES)

解决办法就是不要加分号。



猜你喜欢

转载自weitao1026.iteye.com/blog/2302474