zoukankan      html  css  js  c++  java
  • 关于最近工程的一些心得

    关于最近工程的一些心得

    一、电脑的问题

         工欲善其事必先利其器,最近我在做一个springmvc的项目,程序伊始,我采用了一定的java的jdk版本、Spring版本、Tomcat版本,可是进行了一段时间,就发现了不少问题,首先是分工协作,大家用的版本需要统一一下,我开始没有在意,后来写了一段时间的程序发现有很多东西因为版本的不同而不一致,这个时候不得已又重新安装了jdk的规定版本,之后是电脑出现的问题,早上我兴致勃勃的起得很早去写程序,谁知道电脑刚开始还是好好的,后来卡在一个地方,结果好了之后鼠标突然没有反应了,当时的情况是鼠标还亮着,我等了好久,不断的移动都没有用,于是我把鼠标拔了之后重新插了一下,结果只有一个固有的响声之后,鼠标也不亮了,如此反复很多次,屏幕上也没有任何的提示,我在想是不是因为频繁的操作再加上电脑的死机导致鼠标烧坏了,试了一会儿决定去向同学借一个鼠标试一下,结果也是一样的情况,这个时候我想没这么巧的事情了,会不会是电脑的接口烧了?!于是我又把鼠标插在了电脑的不同端口上,结果都是一样,我在想不会这么巧合吧,于是看了一下电脑的磁盘,发现C盘只剩下6GB了,我赶紧把一些可以移除的东西从C盘上清理了,又用了驱动精灵扫描了一下电脑的硬件,结果没有什么问题,然后想着再重启一下试试,就这样又重启了一下结果可以了,我的天,原来我的问题竟然这么简单,其实这也和我这个window10已经使用了将近一年有关系,常理来说Windows使用1年以上基本上就会出现这样那样的未知问题,需要重装系统才能恢复,这也是Windows和类Unix系统的差别和短板。

    二、MyEclipse2014关于智能提示的问题

         这个问题真是酸痛,这也是我写这个小结的主要原因,因为我按照网上说的,在preference中的java——>editor——>content assist中的enable auto activation以及相应的属性都做了选择和勾选,结果还是一个样子,我那个崩溃呀,网上的所有的解决办法就是到这里就结束了,这点让我很不爽,后来我百思不得其解,在无意之中我看到了content assist的内部还有一些设置,当时真是如获至宝呀,赶紧把它们全部选上,然后又试了一下,结果可以了,哈哈,这个问题我想不是所有人能解决的,希望能帮到其他人,也就是在content assist中的advanced中选择需要的东西,最好全部勾上,然后再试一下,基本上是没问题了!!!

    三、关于git的问题

        因为使用了远程项目管理器,我需要从远程pull代码到本地,需要明确的是我已经在本地生成了公钥和私钥,并且把公钥已经注册到了服务器中,也就是服务器能理解我发的东西,于是使用了git clone来下载代码,谁知道以前无往不利的这条命令结果没用了,一直提示我输入自己的密码(这个很正常),成功之后还要输入git服务器的密码,可是远程服务器是没有设置密码的呀,我那个醉呀,没办法,我试了好多遍,在网上找答案,发现各种各样的情况都能造成这样的问题,很郁闷,按着试了一下还是没有解决,最后我一气之下把git卸载了,并且重新装了一遍,又重新生成了公钥和私钥密码对,然后再重新注入到远程服务器,这个时候我再试一下,成不成就看这次的了,不过结果需要明天才知道了~~第二天我试了一下git clone其他网站的开源代码竟然可以了,也就说明了这个问题是由对方的git中没有添加我的公钥造成的,但是实际上添加了,后来才知道是因为公钥的格式不同造成的,也就是说权限问题来自于公钥没有准确添加到服务器上。

    四、关于mysql的一些问题

      本来我的mysql是没问题的,从开始使用到现在已经很长时间了,可是前一段时间因为某些原因修改了mysql的密码,然后完成了一些功能,后来又去做别的事情了,到了现在要使用的时候就出问题了,我用的是mysql workbench6.1,以前也表现了良好的性能,可是这次当我想在数据库管理系统中创建一个数据库的时候竟然提示我权限不够,具体的错误是:ERROR 1044 (42000): Access denied for user ''@'localhost' to database xxx;这就很纠结了,我本来认为是一个小的问题,于是在网上搜了一下,确实也有许多解决办法,又Windows系统下的mysql和Linux下的mysql解决办法,我照着一个个试了一下,无外乎关闭mysql服务,然后暂停权限检测,让我们进入mysql内部,然后修改mysql数据库下的user表,把其中的某些字段删除,这些字段一般是四个,一个user='',还有三个user='root',但是这三个的IP是不同的,根据错误提示,是第一个user,也就是默认的user出了问题,没有权限访问,我就把这个user删除了,并且按照网上说的,使用flush privileges;更新了一下权限,这样我觉得就可以了,并且为了简单我还把剩下的三个user的password设置为了'',这样我想一切都会好起来的,谁知道我又打开了mysql workbench,尝试创建一个数据库,还是出了问题,到这里真的是筋疲力尽了,因为这小小的错误已经花去了我很长时间了,可是我还是不甘心,最后想着再重装一次mysql,后来才知道这是多么失败的一次尝试,在没有重装系统之前,卸载mysql并重装,默认的系统的配置都是存在的,并没有更新,也就是说我还是什么都没搞定,并且这次重装,竟然卡在了其中的一个关于Visual studio插件上面,想想也是欲哭无泪呀,重装了好多次,卸载了很多次,最后总算搞定了,才发现以前如前,没办法,只能硬着头皮在网上找答案,功夫不负有心人,我又尝试了很多遍,有一次我想着不如给剩余的三个user='root'的用户加上密码,我带着这样的心情试了一下,没想到竟然可以了,打开workbench提示我输入密码,之后我尝试创建数据库竟然完全没问题,有时候想想真的是只离成功一步之遥的时候,我们往往会放弃呀,吸取了这次的教训,我总结了一下我的解决方案。

    第一步:关闭mysql服务,我的版本是mysql56,可以在服务中关闭,也可以用命令关闭。

    第二步:切换目录到mysql的安装目录的/bin下,并且关闭权限检查,这用命令实现比较简单,本质是操作my-default.ini文件。

    命令:cd D:software_setupmysql_setupMySQL Server 5.6in   对于有环境变量的不需如此

              mysqld --defaults-file="D:software_setupmysql_setupMySQL Server 5.6my-default.ini" --console --skip-grant-tables

      该命令如果成功,则这个cmd就被控制,不能输入!

     第三:另起一个cmd,进行删除user=",并且修改user='root'的密码。

    mysql -u root -p

    use mysql

    delete from user where user='';

    update user set password=password('123456') WHERE User='root';

    select host,user,password from user;

    flush privileges;

    第四:再试一次看结果如何,我的是成功了,我想应该会成功!

        正当我高兴的炫耀自己的成果的时候,我把mysqld进行关了,然后再来登录workbench,结果竟然又不行了,输入密码也一直提示报错,突然间有一种讽刺的感觉,好像自己的做的东西都是无用功一样,不过学到的就是学到了,虽然没有解决相应的问题,于是我又仔细思考,罪魁祸首就是我曾经把密码给更改了,之后我就进不去了,这是关键,于是我在想上一次我重装mysql,系统保留了我的一些文档和设置,那么系统凭什么东西来做到这一点的,于是我就想也不可以让系统失去这种能力,如果可以的话,我就可以成功的重新安装了,而不是这样的被动,事实证明还真是可以的,我们首先需要删除以前安装mysql的安装目录下的所有文件,之后我们需要在C盘的programdata(隐藏文件)下面删除对应的mysql文件夹,这样还不够釜底抽薪,这只能像是一个人我们把他的脚砸受伤了,而这个人还可以恢复过来,那么最绝的是什么呢,我们可以把这个人的脚部神经全部破坏了,那么这个人就再也没有恢复的可能了,在电脑系统上也是如此,windows中注册表就相当于这样的神经网络,一旦注册表被攻击或者被误删,那么系统就丧失了劳动力了,而我们以前删除的东西顶多相当于把一个人的脚砸受伤了,于是我们在注册表中在相关的单元中删除相应的键值,这样我们就彻底的使得系统变成部分残废了,具体可以参考https://jingyan.baidu.com/article/f96699bbaa8fc1894f3c1b5a.html然后我们再来一个骨髓移植,也就是重装mysql,并且自己设置密码,这样就可以完美的解决问题了,之后我们安装成功mysql workbench,然后输入自己的密码,也可以不输入密码(之前没设置的话),就可以对数据库进行各种操作了,这点正是我们想要的结果!之后我们再通过ODBC,jdbc来用程序连接数据库,完成相应的增删改查(CRUD)功能!!!!!!

     五、关于restful和非restful的理解

         这点我在网上找了好久都没有解决办法,后来在自己的摸索中一步步的走过来了。

       5.1、非restful格式的请求和应答(resquest,response)

       客户端(网页)输入:http://localhost:8080/181mall/v1/member.action?keyword=12&page_size=10&page_no=1&c=12

       服务端进行解析:首先格式是:

     1 @RequestMapping("/v1")
     2 public class MemberMall {
     3 
     4   /*一些代码*/
     5 
     6 @RequestMapping(value="/member" ,method=RequestMethod.GET)
     7     public  @ResponseBody List<MemberInfoBean> getAllMemberInfo(@RequestParam(value="keyword") String keyword,
     8                                                                 @RequestParam(value="page_size")int page_size,
     9                                                                 @RequestParam(value="page_no")int page_no,
    10                                                                 @RequestParam(value="c")int c) {
    11      /*一些代码*/
    12 
    13       return memberInfoBeanPage;
    14 
    15 }

      在web.xml中的配置是(其实这里的*.action可以是任何东西,比如*.do只不过要和客户端请求对的上):

     1   <servlet>
     2     <servlet-name>springmvc</servlet-name>
     3     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     4     <init-param>
     5       <param-name>contextConfigLocation</param-name>
     6       <param-value>/config/spring/springmvc.xml</param-value>
     7     </init-param>
     8   </servlet>
     9   
    10   <servlet-mapping>
    11     <servlet-name>springmvc</servlet-name>
    12     <url-pattern>*.action</url-pattern>
    13   </servlet-mapping>

       5.2、restful格式的请求和应答(resquest,response)

       客户端请求:http://localhost:8080/181mall/v1/member/1

       服务端接受并解析:

     1  @Controller
     2  @RequestMapping("/v1")
     3  public class MemberMall {
     4          /*一些代码*/
     5      @RequestMapping(value="/member/{member_id}" ,method=RequestMethod.GET)
     6      public  @ResponseBody MemberInfoBean getMemberInfoById(@PathVariable("member_id")int member_id) {
     7          
     8               /*一些代码*/
     9             //返回对象
    10      }
    11        /*一些代码*/
    12 }

        web.xml中的配置:

     1  <servlet>
     2     <servlet-name>springmvc_rest</servlet-name>
     3     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     4     <init-param>
     5       <param-name>contextConfigLocation</param-name>
     6       <param-value>/config/spring/springmvc.xml</param-value>
     7     </init-param>
     8   </servlet>
     9     <servlet-mapping>
    10         <servlet-name>springmvc_rest</servlet-name>
    11         <url-pattern>/</url-pattern>
    12     </servlet-mapping>

        值得一提的是,系统同时支持这两种方式并存,我们可以很方便地进行取舍。

  • 相关阅读:
    转一篇GCC相关的文章
    STM32 NVIC
    阻塞套接字返回EAGAIN
    ndk编译libpcap 1.7.4(最终解决方法)
    ndk编译libpcap 1.7.4
    C# 解析torrent文件
    NPOI 读取excel的时候,时间格式的处理
    asp.net webapi 获取报文体的问题
    .net core 2.0 报错:error NU1102: Unable to find package 。。。
    SQL SERVER获取信息的方法
  • 原文地址:https://www.cnblogs.com/zyrblog/p/7768776.html
Copyright © 2011-2022 走看看