胜博发娱乐游戏导航executeQueryForObject returned too many results

( 胜博发娱乐游戏导航 )

有一个SQL:

select coalesce(count(1),0) from table where searchDt=#searchDt#

ibatis Dao层是这么写的:

public Integer findCount(String searchDt) throws SQLException {
    return (Integer)this.get().queryForObject("xxxxx",searchDt);
}

现在提示错误:

java.sql.SQLException: Error: executeQueryForObject returned too many results.
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:108)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)
    at com.boco.monitor.dao.xxxxDao.findCount(xxxxDao.java:112)
    at com.boco.monitor.service.xxxxService.xxxxAnalysis(xxxxService.java:882)
    at com.boco.monitor.task.Task.run(Task.java:35)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

奇了怪了,这SQL打死也不能查出多条结果啊?

确认一下传入的参数searchDt名字和值有没有问题

  • 列表项目

提示已经很清楚了。queryForObject只需要1条记录,但实际返回了多条记录。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

胜博发娱乐游戏导航java 矩阵相乘, 为什么用到 int temp,划线这几行什么意思

( 胜博发娱乐游戏导航 )

temp这个变量名一般表示计算中的值,你可以把它看作“容器”。你看,最后不是交给c[i][j]了。

c[i][j]=temp;

最后提醒lz,以后上代码的时候最好粘贴,不要上图。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

胜博发娱乐游戏导航ActionEvent失效

( 胜博发娱乐游戏导航 )

1.我的这个程序实现的是:创建一个窗口,模拟输入序列号;按下“确定”按钮就可以弹出提示框(正确或者错误)。我试图用三个监视器。1.焦点监视器和2.键盘监视器监视键盘(当输入超过3个字符时自动更改焦点。);3.一个监视器监视按钮button,当按钮被按下,就比对输入的序列号是否与预先写好的一致。但是结果,永远是不一致,即使输入了正确的序列号。我想知道问题出在哪?
2.
Judge.java


public class Judge {
    public static void main(String args[])
    {
        Win win=new Win();
        win.setTitle("判断序列号");
        win.setBounds(10,10,460,360);
    }
}

Win


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//该窗口应该包含以下内容:
//1.三个文本框,每个文本框输入字符数为4
//2.一个提交按钮
// 3.两个事件处理:焦点处理和键盘事件处理

public class Win extends JFrame    implements ActionListener//Win类用来初始化窗口
{
    JTextField text[]=new JTextField[3]; //三个文本框
    String str[]=new String[5];//字符串数组
    focusPolice focuspolice;    //自定义类2:焦点事件类。
    JButton b;        //确定按钮
                    //构造函数   
    Win() {
          setLayout(new FlowLayout());        //布局类型为FlowLayout型
          b=new JButton("确定");
          this.init();
          add(b);
          text[0].requestFocusInWindow();        //初始化焦点
          setVisible(true); 
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    public void init()
    {
          focuspolice=new focusPolice();    //创建焦点事件类对象
          for(int i=0;i<3;i++)
          {
              text[i]=new JTextField(4);
              text[i].addFocusListener(focuspolice);
              text[i].addKeyListener(focuspolice);
              str[i]=text[i].getText().toString();
              add(text[i]);
          }  
          b.addActionListener(this);
    }
        
    public void actionPerformed(ActionEvent ae)
            {
                if(ae.getActionCommand().equals("确定"))
                {
                if(str[0]=="aaa"&&str[1]=="bbb"&&(str[2]=="ccc"))
                {
                    JOptionPane.showMessageDialog(b,"正确!","提示框",
                          JOptionPane.INFORMATION_MESSAGE);
                }
                else
                {
                    JOptionPane.showMessageDialog(b,"错误!","提示框",
                          JOptionPane.WARNING_MESSAGE);
                }
                }
            }
      
    }

focusPolice.java


import java.awt.event.*;
import javax.swing.*;         //既然是要处理事件,那么awt.event必不可少
public class focusPolice implements KeyListener,FocusListener{//不光是需要FocusListener,也需要keyListener
       public void keyPressed(KeyEvent e) {
              JTextField t=(JTextField)e.getSource();
              if(t.getCaretPosition()>=2)             
                  //实验结果:如果输入的字符个数多于3个,将会自动跳焦。
                 t.transferFocus(); 
            }
            public void keyTyped(KeyEvent e) {}
            public void keyReleased(KeyEvent e) {}
            public void focusGained(FocusEvent e) {
              JTextField text=(JTextField)e.getSource();
              text.setText(null); 
            }
            public void focusLost(FocusEvent e){}

}

3、4.我输入了我预先设置的答案,仍然提示错误。整个程序并没有报错,但就是和我想要的结果不一样。

5.我试了某个办法,看文本框中的内容有没有传递给str数组,最后发现并没有。说明问题出在init()方法内部,但是我知识有限,花了很长时间还是没找到哪里错了。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

胜博发娱乐游戏导航tomcat可以脱离myeclipse独立运行项目吗?

( 胜博发娱乐游戏导航 )

启动项目总是要在myeclipse中用tomcat启动,能不用myeclipse直接用tomcat或者别的服务器启动项目吗?

说个最最简单的例子,你觉得每台服务器上都必须装个eclipse吗

这个必须可以。

这些个软件是集成了tomact,在生产环境下,tomcat是单独存在与服务器上,通过shell命令操作的。

myeclipse 只是一个IDE而已。

默认端口号为8080 。一般我们开发测试的时候都在浏览器地址栏输入http://localhost:8080/项目名?参数名=参数值 来访问项目。

可以。建议用maven或者gradle,以免幺蛾子过多。

当然啦。

当然可以,可以把项目打包成war格式放到tomcat的webapps目录下运行

当然啦,tomcat是个服务器嘛,而myeclipse是个IDE,用来写java项目的啊,你需要把项目打成jar包或者war包的格式,放到tomcat下运行啊。

问题分析:
提出这个问题,说明题主对tomcat和myeclipse的概念理解不清,针对此,正确的答案不是当然可以…或者可以之类的废话,厘清概念关系才是重点。

答案:

  • tomcat是一个web服务器,同样概念的还有weblogic(常用于java),apache(常用于php)、iis(常用于.net)一样,他们都是web程序的运行环境。

  • myeclipse是集成开发环境(ide),同样概念的还有intellJ ideavisual studio,php storm等,集成二字的含义就是除了让你方便的编辑代码之外,它还集成了其他多种工具,比如maven插件,git版本管理,tomcat等web服务器,让你开发和调试起来更加方便。

  • 当你在myeclipse中点击调试或者运行按钮之后,myeclipse实际只是运行了tomcat(或者其他web服务器)的startup.bat(linux下为startup.sh)命令而已,所以,web程序必须在web服务器中才能运行,并且web服务器是独立的(尤其是和ide独立)。

可以的,直接在开启,在浏览器输入默认端口8080

tomcat可以自己独立运行的

myeclipse只是可以集成tomcat。兄弟,主次反了。

springboot

当然可以,myeclipse只是集成工具,方便使用,并不是必须的。

这个问题。。
myeclipse是IDE,让写代码更方便,其他类似很多;Tomcat是应用服务器,Servlet/JSP运行环境存在,也有很多类似,
myeclipse是在开发时使用的工具,下载Tomcat解压,里面还有示例项目,直接运行试试

所以一味只用ide就会出现这样的问题,有时候学习的话还得用原始的方式才能知道工程到底怎么回事儿

肯定可以。服务器上的tomcat都没有myeclipse吧。。你只是把TOMCAT集成到IDE里面了 。tomcat目录中的 bin包中运行那个start.bat或者.sh的脚本就能启动。把你的项目打成jar或者war包。放到WEBAPP目录下,运行tomacat就行了

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

唯一授权官网前端把jsessionid 删掉,为什么能重定向到login页面

( 唯一授权官网 )

原理是怎样的?后台通过这个id去拿session?

tomcat通过这个id拿对应的session,应用一般都用不到这个id

删掉jsessionid之后后台就拿不到会话,认为这个浏览器没有登录,也就会重定向到登录页面要求用户登录了。

应该是和验证框架实现机制有关

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

SBF888胜博发娱乐一道Java关于接口、继承和重写的基础问题

( SBF888胜博发娱乐 )

实践中遇到的一个问题,实在搞不懂,特来请教各位。
1.首先有一个接口,接口里有一个get方法。

public interface HeInterface <T extends Serializable, PK extends Serializable> {
    public T get(PK id);
}

2.其次有一个类,实现了接口的get方法。

public abstract class HeAbstract <T extends Serializable, PK extends Serializable> implements IBaseDao<T, PK>{
    @Override
    public T get(PK id) {
        if(id==null)return null;
        return (T) getCurrentSession().get(entityClass, id);
    }
}  

3.然后我写了一个接口,继承了HeInterface这个接口,并且也有一个get方法。

public interface MyInterface extends HeInterface<ClassA, String>{
    public ClassA get(String id);
}

4.最后我写了一个实现类,实现我的接口,但是发现IDE的添加未实现的方法没有提示get方法为未实现,意思是我的get已经被实现了吗?接口继承接口可以存在重写吗?还是因为泛型导致这种问题?这是怎么一回事,请各位明示。

在你的例子中, 如果你只是实现了MyInterface接口没有继承HeAbstract类的话,那么get方法你是没有实现的,IDE如果没有提示你,要么你使用姿势有错, 要么IDE出bug了。
而如果你的实现类如果继承自HeAbstract类,而且还实现了MyInterface接口,那么应该是不能编译通过的。
首先要明确Java中是不能有两个相同的方法,要么参数列表不同,要么方法名不同。
如果你的子类实现了MyInterface,那它就应该有一个public ClassA get(String id)方法。
同时你的子类还继承了HeAbstract类,那么它就还可以调用父类的public Serializable get(Serializable id)方法。
这样的一个类本身是没问题的,因为子类的get方法和父类的get方法参数不同。
但是在你的代码中, 因为MyInterface又继承自HeInterface,那么就有问题了, 因为HeInterface中定义的方法是public Serializable get(Serializable id);,那么子类此时的代码就相当于:

class SubClass ... {
    public Serializable get(String id);
    
    public Serializable get(Serializable id);
}

SubClass的父类HeAbstract也有一个public Serializable get(Serializable id);方法,冲突了。

从你的描述上来看get并没有实现。

public interface HeInterface <T extends Serializable, PK extends Serializable>

public interface MyInterface extends HeInterface<ClassA, String>

MyInterface 相当于把HeInterface里的泛型参数具体化了
T=ClassA
PK=String

相应的,HeInterface接口里的方法
public T get(PK id);
就变成了
public ClassA get(String id);

这个方法与MyInterface里重新定义的方法
public ClassA get(String id);
一模一样

对于IDE和编译器来说,2个定义一模一样的接口方法,只需要实现一个

例如

public interface A() {
    public void function();
}
public interface B() {
    public void function();
}

class Impl implements A, B {
    public void function() {
        //do something
        //这里即是A接口的实现,也是B接口的实现
    }
}

实际上,在接口继承并指定泛型参数时,完全可以不用再定义方法

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

胜博发娱乐游戏导航Solr现在流行哪个版本?4.X、5.X和6.X有哪些区别?

( 胜博发娱乐游戏导航 )

我发现Solr 4.10已经有Solr Cloud了,是不是4.10已经是个成熟的版本了?大家用Solr一般用哪个版本?4.X、5.X和6.X有哪些区别?

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

SBF888胜博发娱乐如何在多线程中注入bean?!

( SBF888胜博发娱乐 )

前几天,在sf这里也提过这个问题,但是仍未得到解决,上一个问题是这个在Service中注入Dao不成功,Dao为null。但根据大虾们的回答,我想再理顺一下这个项目的逻辑,免得各位看着都不懂我在说什么。本人是spring小白,整个项目环境搭建是前辈写下的,我只是根据他的方法来添加修改,所以有很多框架上的逻辑我并不是看得很懂。

我想实现的是——用多线程通过socket不断获取从客户端发送过来的消息,并对消息联系JDBC进行分析

P.S.代码部分都只截取了重要的部分
我先放一下其中一个service和dao的实现:

1)ConcentratorService:

public interface ConcentratorService {
    public List<Concentrator> getConcentratorListByMacAddresses(String[] macAddr) throws Exception;
}

2)ConcentratorServiceImpl:

@Service("ConcentratorService")
public class ConcentratorServiceImpl implements ConcentratorService{
    @Autowired
    ConcentratorDao concentratorDao;
    public Concentrator findConcentratorByCaddress(String caddress) throws Exception{
            // TODO Auto-generated method stub
            return concentratorDao.findConcentratorByCaddress(caddress);
    }
}

3)ConcentratorDao

public interface ConcentratorDao {
    public List<Concentrator> getConcentratorListByMacAddresses(String[] macAddr) throws Exception;
}

4)ConcentratorDaoImpl

public class ConcentratorDaoImpl implements ConcentratorDao {

    @Autowired
    SessionFactory sessionFactory;

    Session session = null;
    Transaction tx = null;
    
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory=sessionFactory;
    }    

    @Override
    public List<Concentrator> getConcentratorListByMacAddresses(String[] macAddr) throws Exception {
        session = sessionFactory.openSession();
        tx = session.beginTransaction();
        
        StringBuffer sb = new StringBuffer("from Concentrator where caddress in (");
        for(int i=0; i<macAddr.length; i++){
            if(i==macAddr.length-1){
                sb.append("?)");
            }else{
                sb.append("?,");
            }
        }
        
        Query query=session.createQuery(sb.toString());
        for(int i=0; i<macAddr.length; i++){
            query.setParameter(i, macAddr[i]);
        }
        

        @SuppressWarnings("unchecked")
        List<Concentrator> clist=query.list();
        tx.commit();
        session.close();
        return clist;
    }
    
}

这里再放一下datasource.xml,这个xml是用来配置bean的。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
  http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  http://www.springframework.org/schema/util 
  http://www.springframework.org/schema/util/spring-util-3.2.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.2.xsd">

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/gwsl?characterEncoding=gbk" />  <!-- ?characterEncoding=UTF-8&amp;useOldAliasMetadataBehavior=true" -->
        <property name="username" value="XXX" />
        <property name="password" value=" XXX" />
    </bean>
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="annotatedClasses">
            <list>
                <value>com.streetLight.model.Concentrator</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            </props>
        </property>
    </bean>    

    <bean id="txManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    
    <bean id="persistenceExceptionTranslationPostProcessor"
        class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<bean id="concentratorDao" class="com.streetLight.dao.ConcentratorDaoImpl"></bean>
    <bean id="concentratorService" class="com.streetLight.services.ConcentratorServiceImpl"></bean>

</beans>

以防万一把web.xml也放一下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name></display-name>
  
  <session-config>
  <session-timeout>30</session-timeout>
 </session-config>
 
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/config/root-context.xml</param-value>
    </context-param>
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
  
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/config/root-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
    
</web-app>

****这里之后就是想添加的功能的代码:****
RunSocket:

//@Component
public class RunSocket {
    
    public static void main(String[] args) throws InterruptedException { 
        System.out.println("开始启动websocket"); 
        WebSocketImpl.DEBUG = false; 
        int port = 8888; // 端口随便设置,只要不跟现有端口重复就可以 
        WebSocket s = null; 
        try { 
            s = new WebSocket(port); 
        } catch (UnknownHostException e) { 
            System.out.println("启动websocket失败!"); 
            e.printStackTrace(); 
        }
    s.start(); 
    System.out.println("启动websocket成功!"); 
    
    System.out.println("开始启动ServerSocket"); 
    ReceiveThread mReceiveThread = new ReceiveThread();
    mReceiveThread.init();
    mReceiveThread.start();
    }
//    代码修改自:
//    作者: 手插口袋_ 
//    链接:http://www.imooc.com/article/12401
}

下面是thread和解析信息的代码:
ReceiveThread:(方案一)

public class ReceiveThread extends Thread {
    
    private ApplicationContext ctx;
    private SpringContextUtil scu;
    
    static final int SOCKET_PORT_0 = 8800; // 端口号
    static ServerSocket mServerTest = null;
    static Socket mSocket = null;
    static InputStream mInput = null;
    byte[] buffer;
    static final byte CONTROLLER_FAULT = (byte)0x90;

    List<Area> alist=new ArrayList<Area>();
    List<String> msgList=new ArrayList<String>();    

    ConcentratorService concentratorService;
    
    public void init() {
        buffer = new byte[65536];
        //scu = new SpringContextUtil();
        ctx = new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/config/datasource.xml");
        concentratorService =(ConcentratorService) ctx.getBean("concentratorService");
//        scu.setApplicationContext(ctx);
//        controllerofService =(ControllerofService) SpringContextUtil.getBean("controllerofService");
//        concentratorService =(ConcentratorService) SpringContextUtil.getBean("concentratorService");
//        lightPoleService =(LightPoleService) SpringContextUtil.getBean("lightPoleService");
//        controllerFaultService = (ControllerFaultService) SpringContextUtil.getBean("ControllerFaultService"); 
    }

    public void run() {
        try {
            mServerTest = new ServerSocket(SOCKET_PORT_0);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        int size = -1;
        while (true) {
            
            try {
                if (size < 0) {
                    System.out.println("等待前置机的链接....");
                    mSocket = mServerTest.accept();
                    System.out.println("服务器测试程序已链接....");
                } else {
                    byte[] realBuffer = new byte[size];
                    System.arraycopy(buffer, 0, realBuffer, 0, size);
                    System.out.print("Message from front end: ");
                    msgList=parseFrontEndMsg(realBuffer,alist);
                    WebSocket.getMsgFromServer(msgList);
                }
                mInput = mSocket.getInputStream();
                size = mInput.read(buffer);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    
    public List<String> parseFrontEndMsg(byte[] mBytes,List<Area> alist) throws Exception{
        ControllerFaultService controllerFaultService=this.controllerFaultService;
        byte msg_code = mBytes[1];
        String macAddr="";

        switch (msg_code = mBytes[1]) {
            case CONTROLLER_FAULT:
                //省略代码。macAddr分析自客户端发送来的信息。
                    Concentrator c=concentratorService.findConcentratorByCaddress(macAddr);
                //省略代码。
                return faultList;
        }
        return null;
    }

}

直接运行RunSocket的main函数,用上面这种方法service能被赋值,但是dao却是空的。

之后我又试了一中,本想spring自己注入的。
ReceiveThread:(方案二)

@Component
public class ReceiveThread extends Thread {
    
    static final int SOCKET_PORT_0 = 8800; // 端口号
    static ServerSocket mServerTest = null;
    static Socket mSocket = null;
    static InputStream mInput = null;
    byte[] buffer;
    static final byte CONTROLLER_FAULT = (byte)0x90;

    List<Area> alist=new ArrayList<Area>();
    List<String> msgList=new ArrayList<String>();    

    @Autowired
    ConcentratorService concentratorService;
    //@Autowired和@Resource的运行结果都一样,concentratorService为null
    
    public void init() {
        buffer = new byte[65536];
    }

//以下代码同上,省略。

但是这种方法,更是什么都没有被注入,service的值为空,我不知道问题出在哪里。
是不是spring的环境在运行RunSocket的mian函数时并没有被布置?

重申一次,service和dao的配置上应该是没什么问题的,因为在Run On Server后,controller中bean都是能成功被注入并被使用。

我在看spring的入门教程,发现和我这个工程有点差别,前辈写的接口并没有setter注入或者constructor注入,但却能运行,我猜是不是用了@Autowired这些标示就可以省略前面两种方式的注入?(如果我的问题很白痴,请不要介意啊),再此先谢过各位。

“对于我这种逻辑白痴来说,spring真的很难学。”

=================ENDING==================

由于试了多种方法都没有实现service的自动注入或用容器取得service后实现dao的注入,最终还是采取了最愚蠢的方式,建立一个容器,直接取出DaoImpl的bean(而不通过service->serviceImpl->dao->daoImpl这个途径),来最终连接数据库了。
算是一种妥协吧,唉。多谢各位这么多天的热心帮助。或许之后的某一天,当自己学好spring再回来看这个问题可能就能得到更好的解决。

你这个线程类是new出来的,所以Spring是没办法进行管理的。
如果要在Spring中使用多线程,建议你看下Spring的TaskExecutor

你的需求简单来说就是这样:在Spring启动之后,开启一个工作线程做持续做一些事情。所以关键点就是:

  1. 确保在Spring启动之后工作线程才能开始,因为只有这个时候Spring中的Bean都已经初始化好了,你现在做的不是这样,所以你会以为Spring没有注入

  2. 这个线程应该在Spring关闭的时候也关闭

实现这个需求很简单:

  1. 把RunSocket变成一个@Component

  2. RunSocket实现SmartLifeCycle接口,实现这个接口Application启动和关闭的回调方法

  3. 在启动回调方法里,构建ReceiveThread,ReceiveThread不是Bean,它所需要的其他组件都是RunSocket给的

  4. 在关闭的回调方法里,将ReceiveThread关闭

我也遇到过spring多线程注入的需求,使用了taskExecutor线程池

    @Resource
    private SyncTaskService syncTaskService;
    @Resource
    private ThreadPoolTaskExecutor taskExecutor;
    @Service
public class SchedulingServiceImpl implements SchedulingService {
    private class SendDuty implements Runnable {

        private final JSONObject jsonObject;

        public SendDuty(JSONObject jsonObject) {
            this.jsonObject = jsonObject;
        }

        @Override
        public void run() {
            System.out.println("多线程启动");
            SchedulingServiceImpl.this.syncTaskService.syncScheduleTask(jsonObject);
        }

    }
   }

调用的方法

         SendDuty sendDuty = new SendDuty(object);
         taskExecutor.execute(sendDuty);

下面是线程池的配置

 <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <!-- 线程池维护线程的最少数量 -->
        <property name="corePoolSize" value="5"/>
        <!-- 线程池维护线程所允许的空闲时间 -->
        <property name="keepAliveSeconds" value="30000"/>
        <!-- 线程池维护线程的最大数量 -->
        <property name="maxPoolSize" value="1000"/>
        <!-- 线程池所使用的缓冲队列 -->
        <property name="queueCapacity" value="200"/>
    </bean>

spring初始化时直接注入到web项目内,该main方法与web无关,dao当然无法注入到service内,需要在main方法中初始化spring,才能注入spring相关类

1.在你的main函数中初始化spring,你没有初始化spring。平常写web,spring会加载是因为web.xml是web的入口,所以会主动加载,你用main函数来启动,那么它仅仅只是简单的入口,不会加载web.xml的,所以手动加载就行了。
2.然后如果在作用域外想拿到spring管理的类的话,写个工具类,继承spring的ApplicationContextAware,然后可以取到spring的applicationContext,然后可以使用这个工具类在域外,例如bean内,使用spring管理的类。
3.其实你这样可以不用spring,直接用懒汉写个单例就行了,等接口变多再用spring

dao实现好像没有托管给spring管理 可以通过一个在类上注解@Repository

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

SBF888胜博发娱乐PHP 商品SKU表怎么设计

( SBF888胜博发娱乐 )

现在有四件衣服 比如 裤子 外套 内衣 袜子

然后每件商品有不通的颜色
比如 裤子有黑色 蓝色 白色

外套有  白色 棕色  红色 
内衣有 黑色 白色  粉红色
袜子有 花色 藏青色 

然后每件商品分男 女的
尺码为 男性 X XL XXL

女性为 s(比X小一码) X XL

还需要每件商品不同的属性的库存
这样的表怎么设计呢 求大神指点 给设计下数据库

希望这篇文章能够帮助你,http://www.cnblogs.com/mmmjia…

属性就颜色和尺码

颜色表
颜色id  颜色值

尺码表
尺码id  尺码

库存表
产品id  颜色id  尺码id  库存  价格

属性不固定

属性分类表
分类id  分类名

属性表
属性id  分类id  属性名

库存表
产品id  属性id(多个逗号隔开)  库存  价格

实体-属性-值模型(EAV模型)

首先俩表即可 即 商品表 + 商品属性表
商品表和属性表是1对多的关系
所以商品表保存一些固定属性 比如商品名字 总库存 剩余库存之类等等 具体情况而定 比如你说的裤子外套等
属性表则保存比如你说的颜色 尺码 当前属性下的库存之类的
不知道你有思路的没?

分割线---------------------------------

首先商品分类 :-衣服-裤子-1号裤子==当前裤子有属性-颜色
                                            -尺码
                                            等等
                      -2号裤子
                      -3号等。。
                  -裙子-同上
                  等等。。
             -零食
我的思路小商场基本就是这些
第一个表你保存 商品固定属性 比如 id 1 名称 1号裤子
第二个表 和第一个表关联 1对多 一个商品对应多个属性 
那么 数据就是 sid 1 关联第一个表的id 1  然后 颜色绿色 库存 999 尺码xl
sid 1 关联第一个表的id 1  然后 颜色红色 库存 999 尺码 m
sid 1 关联第一个表的id 1  然后 颜色红色 库存 888 尺码 l

当你查的时候 就对应颜色 对应尺码 对应库存 当然颜色 尺码都存数字 配置比如绿色为1 红色为2 具体你再处理下

仅供参考  哈哈 我也是菜鸟

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

胜博发娱乐游戏导航Java日志分析的方案?

( 胜博发娱乐游戏导航 )

Spring+MyBatis+SNMP+Postgresql的监控系统,需要处理日志里的交易信息,日志形如:

----交易开始----
(交易信息)
----交易结束----

日志按小时分文件。
我的需求是5分钟扫一次日志,把交易成功数汇总,把失败交易写入监控数据库,目前我是把log文件映射为数据库表,用for循环每次取一个交易的信息解析,尝试了一下每个log里有5K个交易,5分钟别说解析完,就连映射到数据库表的时间都不够。映射用的是PG创建外部表的功能:

CREATE SERVER pglog FOREIGN DATA WRAPPER file_fdw;
CREATE FOREIGN TABLE pglog SERVER pglog OPTIONS (filename 'xxxx', format...;

在不上内存数据库、NoSQL的前提下,有没有最简单的方案能提高日志分析的速度?或者说我需要放弃映射为数据库表这条路,走别的路?


PS:由于之前使用外部表创建视图来做查询,不论映射速度还是查询速度都比较慢,现在改为创建表来保存外部表的信息,速度提升明显,先尝试一下看看,另外谢谢 @kevinz 的提醒,由于每次分析时会记录行号,可以在后续分析时跳过上次分析的行,这也是一种缩减时间的方式。继续期待更优的方案:)

  1. 记录上次文件解析的位置。第二次解析日志时使用InputStream.skip跳过可避免重复分析数据

  2. 一个线程解析日志将解析的数据存放在内存中,由额外的线程专门处理数据(这样解析的速度会很快5K的数据应该也是秒级的)

日志分析已经有很多成熟的产品,比如Logstash,不用非得入库,并且入库还涉及服务器io性能,入库频次高的时候,反而影响正常业务。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

唯一授权官网Java写爬虫的时候,matcher.groupCount()返回为1,但是matcher.group(1)却抛异常

( 唯一授权官网 )

我模仿了题意,写了测试代码,结果如下

String html = "<p><span>mytextvalue<br>";
Matcher m = Pattern.compile("<p><span>(.*?)<br>").matcher(html);
System.out.println(m.find()); //true
System.out.println(m.groupCount()); //1
System.out.println(m.group(0)); //<p><span>mytextvalue<br>
System.out.println(m.group(1)); //mytextvalue

另外

// where does m.groupCount come from
m = Pattern.compile("(group1)(group2)(group3)").matcher(html);
System.out.println(m.groupCount()); //3

增加解释说明,
看源码的注释

    /**
     * Returns the number of capturing groups in this matcher's pattern.
     *
     * <p> Group zero denotes the entire pattern by convention. It is not
     * included in this count.
     *
     * <p> Any non-negative integer smaller than or equal to the value
     * returned by this method is guaranteed to be a valid group index for
     * this matcher.  </p>
     *
     * @return The number of capturing groups in this matcher's pattern
     */
    public int groupCount() {
        return parentPattern.capturingGroupCount - 1;
    }

这里说得清楚,groupCount返回的是正则表达式的捕获分组的数量(捕获分组和非捕获分组是另外的知识点),groupCount的结果并不能说明匹配的结果。

要执行正则表达式匹配,需要执行find动作,看源码

    public boolean find() {
        int nextSearchIndex = last;
        if (nextSearchIndex == first)
            nextSearchIndex++;

        // If next search starts before region, start it at region
        if (nextSearchIndex < from)
            nextSearchIndex = from;

        // If next search starts beyond region then it fails
        if (nextSearchIndex > to) {
            for (int i = 0; i < groups.length; i++)
                groups[i] = -1;
            return false;
        }
        return search(nextSearchIndex);
    }

这样的才会给Matcher内部的成员变量groups赋值,groups[i] = -1;
这样的之后在我们执行m.group(1)的时候我们才能获得捕获分组匹配到的内容。

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

胜博发娱乐游戏导航spring mybatis整合启动tomcat报错

( 胜博发娱乐游戏导航 )

这是控制台输出的debug

 INFO [localhost-startStop-1] - Root WebApplicationContext: initialization started
DEBUG [localhost-startStop-1] - Adding [servletConfigInitParams] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Adding [servletContextInitParams] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Adding [jndiProperties] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Adding [systemProperties] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Adding [systemEnvironment] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Initialized StandardServletEnvironment with PropertySources [servletConfigInitParams,servletContextInitParams,jndiProperties,systemProperties,systemEnvironment]
DEBUG [localhost-startStop-1] - Replacing [servletContextInitParams] PropertySource with [servletContextInitParams]
 INFO [localhost-startStop-1] - Refreshing Root WebApplicationContext: startup date [Mon Oct 31 11:57:43 CST 2016]; root of context hierarchy
DEBUG [localhost-startStop-1] - Adding [systemProperties] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Adding [systemEnvironment] PropertySource with lowest search precedence
DEBUG [localhost-startStop-1] - Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
 INFO [localhost-startStop-1] - Loading XML bean definitions from class path resource [spring/applicationContext.xml]
DEBUG [localhost-startStop-1] - Using JAXP provider [com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl]
DEBUG [localhost-startStop-1] - Loading schema mappings from [META-INF/spring.schemas]
DEBUG [localhost-startStop-1] - Loaded schema mappings: {http://www.springframework.org/schema/tx/spring-tx-4.3.xsd=org/springframework/transaction/config/spring-tx-4.3.xsd, http://www.springframework.org/schema/tx/spring-tx-2.5.xsd=org/springframework/transaction/config/spring-tx-2.5.xsd, http://www.springframework.org/schema/cache/spring-cache-4.2.xsd=org/springframework/cache/config/spring-cache-4.2.xsd, http://www.springframework.org/schema/aop/spring-aop-4.1.xsd=org/springframework/aop/config/spring-aop-4.1.xsd, http://www.springframework.org/schema/context/spring-context-3.1.xsd=org/springframework/context/config/spring-context-3.1.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd=org/springframework/jdbc/config/spring-jdbc-4.1.xsd, http://www.springframework.org/schema/jms/spring-jms-2.5.xsd=org/springframework/jms/config/spring-jms-2.5.xsd, http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd=org/springframework/web/servlet/config/spring-mvc-4.1.xsd, http://www.springframework.org/schema/util/spring-util-3.0.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd, http://www.springframework.org/schema/tool/spring-tool.xsd=org/springframework/beans/factory/xml/spring-tool-4.3.xsd, http://www.springframework.org/schema/aop/spring-aop-3.2.xsd=org/springframework/aop/config/spring-aop-3.2.xsd, http://www.springframework.org/schema/lang/spring-lang-4.1.xsd=org/springframework/scripting/config/spring-lang-4.1.xsd, http://www.springframework.org/schema/context/spring-context-4.0.xsd=org/springframework/context/config/spring-context-4.0.xsd, http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd=org/springframework/web/servlet/config/spring-mvc-3.2.xsd, http://www.springframework.org/schema/beans/spring-beans-4.2.xsd=org/springframework/beans/factory/xml/spring-beans-4.2.xsd, http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd=org/springframework/oxm/config/spring-oxm-3.0.xsd, http://www.springframework.org/schema/tool/spring-tool-4.1.xsd=org/springframework/beans/factory/xml/spring-tool-4.1.xsd, http://www.springframework.org/schema/lang/spring-lang-3.2.xsd=org/springframework/scripting/config/spring-lang-3.2.xsd, http://www.springframework.org/schema/cache/spring-cache-3.2.xsd=org/springframework/cache/config/spring-cache-3.2.xsd, http://www.springframework.org/schema/jms/spring-jms-4.3.xsd=org/springframework/jms/config/spring-jms-4.3.xsd, http://www.springframework.org/schema/jee/spring-jee-4.1.xsd=org/springframework/ejb/config/spring-jee-4.1.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd=org/springframework/jdbc/config/spring-jdbc-3.1.xsd, http://www.springframework.org/schema/task/spring-task-4.2.xsd=org/springframework/scheduling/config/spring-task-4.2.xsd, http://www.springframework.org/schema/util/spring-util-2.0.xsd=org/springframework/beans/factory/xml/spring-util-2.0.xsd, http://www.springframework.org/schema/tool/spring-tool-3.2.xsd=org/springframework/beans/factory/xml/spring-tool-3.2.xsd, http://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-4.3.xsd, http://www.springframework.org/schema/tx/spring-tx-4.2.xsd=org/springframework/transaction/config/spring-tx-4.2.xsd, http://www.springframework.org/schema/cache/spring-cache-4.1.xsd=org/springframework/cache/config/spring-cache-4.1.xsd, http://www.springframework.org/schema/aop/spring-aop-4.0.xsd=org/springframework/aop/config/spring-aop-4.0.xsd, http://www.springframework.org/schema/jee/spring-jee-3.2.xsd=org/springframework/ejb/config/spring-jee-3.2.xsd, http://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context-3.0.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd=org/springframework/jdbc/config/spring-jdbc-4.0.xsd, http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd=org/springframework/web/servlet/config/spring-mvc-4.0.xsd, http://www.springframework.org/schema/util/spring-util-2.5.xsd=org/springframework/beans/factory/xml/spring-util-2.5.xsd, http://www.springframework.org/schema/util/spring-util-4.3.xsd=org/springframework/beans/factory/xml/spring-util-4.3.xsd, http://www.springframework.org/schema/beans/spring-beans-3.2.xsd=org/springframework/beans/factory/xml/spring-beans-3.2.xsd, http://www.springframework.org/schema/aop/spring-aop-3.1.xsd=org/springframework/aop/config/spring-aop-3.1.xsd, http://www.springframework.org/schema/lang/spring-lang-4.0.xsd=org/springframework/scripting/config/spring-lang-4.0.xsd, http://www.springframework.org/schema/mvc/spring-mvc.xsd=org/springframework/web/servlet/config/spring-mvc-4.3.xsd, http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd=org/springframework/web/servlet/config/spring-mvc-3.1.xsd, http://www.springframework.org/schema/beans/spring-beans-4.1.xsd=org/springframework/beans/factory/xml/spring-beans-4.1.xsd, http://www.springframework.org/schema/oxm/spring-oxm-4.3.xsd=org/springframework/oxm/config/spring-oxm-4.3.xsd, http://www.springframework.org/schema/tool/spring-tool-4.0.xsd=org/springframework/beans/factory/xml/spring-tool-4.0.xsd, http://www.springframework.org/schema/tx/spring-tx-3.2.xsd=org/springframework/transaction/config/spring-tx-3.2.xsd, http://www.springframework.org/schema/lang/spring-lang-3.1.xsd=org/springframework/scripting/config/spring-lang-3.1.xsd, http://www.springframework.org/schema/cache/spring-cache-3.1.xsd=org/springframework/cache/config/spring-cache-3.1.xsd, http://www.springframework.org/schema/jms/spring-jms-4.2.xsd=org/springframework/jms/config/spring-jms-4.2.xsd, http://www.springframework.org/schema/jee/spring-jee-4.0.xsd=org/springframework/ejb/config/spring-jee-4.0.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd=org/springframework/jdbc/config/spring-jdbc-3.0.xsd, http://www.springframework.org/schema/task/spring-task-4.1.xsd=org/springframework/scheduling/config/spring-task-4.1.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc.xsd=org/springframework/jdbc/config/spring-jdbc-4.3.xsd, http://www.springframework.org/schema/tool/spring-tool-3.1.xsd=org/springframework/beans/factory/xml/spring-tool-3.1.xsd, http://www.springframework.org/schema/tx/spring-tx-4.1.xsd=org/springframework/transaction/config/spring-tx-4.1.xsd, http://www.springframework.org/schema/cache/spring-cache-4.0.xsd=org/springframework/cache/config/spring-cache-4.0.xsd, http://www.springframework.org/schema/jee/spring-jee-3.1.xsd=org/springframework/ejb/config/spring-jee-3.1.xsd, http://www.springframework.org/schema/task/spring-task-3.2.xsd=org/springframework/scheduling/config/spring-task-3.2.xsd, http://www.springframework.org/schema/util/spring-util-4.2.xsd=org/springframework/beans/factory/xml/spring-util-4.2.xsd, http://www.springframework.org/schema/beans/spring-beans-3.1.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd, http://www.springframework.org/schema/websocket/spring-websocket-4.3.xsd=org/springframework/web/socket/config/spring-websocket-4.3.xsd, http://www.springframework.org/schema/util/spring-util.xsd=org/springframework/beans/factory/xml/spring-util-4.3.xsd, http://www.springframework.org/schema/aop/spring-aop-3.0.xsd=org/springframework/aop/config/spring-aop-3.0.xsd, http://www.springframework.org/schema/jms/spring-jms-3.2.xsd=org/springframework/jms/config/spring-jms-3.2.xsd, http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd=org/springframework/web/servlet/config/spring-mvc-3.0.xsd, http://www.springframework.org/schema/beans/spring-beans-4.0.xsd=org/springframework/beans/factory/xml/spring-beans-4.0.xsd, http://www.springframework.org/schema/oxm/spring-oxm-4.2.xsd=org/springframework/oxm/config/spring-oxm-4.2.xsd, http://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans-4.3.xsd, http://www.springframework.org/schema/tx/spring-tx-3.1.xsd=org/springframework/transaction/config/spring-tx-3.1.xsd, http://www.springframework.org/schema/lang/spring-lang-3.0.xsd=org/springframework/scripting/config/spring-lang-3.0.xsd, http://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd, http://www.springframework.org/schema/context/spring-context-4.3.xsd=org/springframework/context/config/spring-context-4.3.xsd, http://www.springframework.org/schema/jms/spring-jms-4.1.xsd=org/springframework/jms/config/spring-jms-4.1.xsd, http://www.springframework.org/schema/task/spring-task-4.0.xsd=org/springframework/scheduling/config/spring-task-4.0.xsd, http://www.springframework.org/schema/tool/spring-tool-3.0.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd, http://www.springframework.org/schema/tx/spring-tx-4.0.xsd=org/springframework/transaction/config/spring-tx-4.0.xsd, http://www.springframework.org/schema/aop/spring-aop-2.0.xsd=org/springframework/aop/config/spring-aop-2.0.xsd, http://www.springframework.org/schema/jee/spring-jee-3.0.xsd=org/springframework/ejb/config/spring-jee-3.0.xsd, http://www.springframework.org/schema/util/spring-util-4.1.xsd=org/springframework/beans/factory/xml/spring-util-4.1.xsd, http://www.springframework.org/schema/task/spring-task-3.1.xsd=org/springframework/scheduling/config/spring-task-3.1.xsd, http://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd, http://www.springframework.org/schema/websocket/spring-websocket-4.2.xsd=org/springframework/web/socket/config/spring-websocket-4.2.xsd, http://www.springframework.org/schema/websocket/spring-websocket.xsd=org/springframework/web/socket/config/spring-websocket-4.3.xsd, http://www.springframework.org/schema/jee/spring-jee.xsd=org/springframework/ejb/config/spring-jee-4.3.xsd, http://www.springframework.org/schema/jms/spring-jms.xsd=org/springframework/jms/config/spring-jms-4.3.xsd, http://www.springframework.org/schema/aop/spring-aop-2.5.xsd=org/springframework/aop/config/spring-aop-2.5.xsd, http://www.springframework.org/schema/aop/spring-aop-4.3.xsd=org/springframework/aop/config/spring-aop-4.3.xsd, http://www.springframework.org/schema/lang/spring-lang-2.0.xsd=org/springframework/scripting/config/spring-lang-2.0.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd=org/springframework/jdbc/config/spring-jdbc-4.3.xsd, http://www.springframework.org/schema/oxm/spring-oxm.xsd=org/springframework/oxm/config/spring-oxm-4.3.xsd, http://www.springframework.org/schema/jms/spring-jms-3.1.xsd=org/springframework/jms/config/spring-jms-3.1.xsd, http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd=org/springframework/web/servlet/config/spring-mvc-4.3.xsd, http://www.springframework.org/schema/util/spring-util-3.2.xsd=org/springframework/beans/factory/xml/spring-util-3.2.xsd, http://www.springframework.org/schema/oxm/spring-oxm-4.1.xsd=org/springframework/oxm/config/spring-oxm-4.1.xsd, http://www.springframework.org/schema/task/spring-task.xsd=org/springframework/scheduling/config/spring-task-4.3.xsd, http://www.springframework.org/schema/tool/spring-tool-2.0.xsd=org/springframework/beans/factory/xml/spring-tool-2.0.xsd, http://www.springframework.org/schema/tx/spring-tx-3.0.xsd=org/springframework/transaction/config/spring-tx-3.0.xsd, http://www.springframework.org/schema/lang/spring-lang-2.5.xsd=org/springframework/scripting/config/spring-lang-2.5.xsd, http://www.springframework.org/schema/lang/spring-lang-4.3.xsd=org/springframework/scripting/config/spring-lang-4.3.xsd, http://www.springframework.org/schema/context/spring-context-4.2.xsd=org/springframework/context/config/spring-context-4.2.xsd, http://www.springframework.org/schema/jms/spring-jms-4.0.xsd=org/springframework/jms/config/spring-jms-4.0.xsd, http://www.springframework.org/schema/jee/spring-jee-2.0.xsd=org/springframework/ejb/config/spring-jee-2.0.xsd, http://www.springframework.org/schema/oxm/spring-oxm-3.2.xsd=org/springframework/oxm/config/spring-oxm-3.2.xsd, http://www.springframework.org/schema/tool/spring-tool-4.3.xsd=org/springframework/beans/factory/xml/spring-tool-4.3.xsd, http://www.springframework.org/schema/tool/spring-tool-2.5.xsd=org/springframework/beans/factory/xml/spring-tool-2.5.xsd, http://www.springframework.org/schema/jee/spring-jee-4.3.xsd=org/springframework/ejb/config/spring-jee-4.3.xsd, http://www.springframework.org/schema/jee/spring-jee-2.5.xsd=org/springframework/ejb/config/spring-jee-2.5.xsd, http://www.springframework.org/schema/util/spring-util-4.0.xsd=org/springframework/beans/factory/xml/spring-util-4.0.xsd, http://www.springframework.org/schema/task/spring-task-3.0.xsd=org/springframework/scheduling/config/spring-task-3.0.xsd, http://www.springframework.org/schema/websocket/spring-websocket-4.1.xsd=org/springframework/web/socket/config/spring-websocket-4.1.xsd, http://www.springframework.org/schema/cache/spring-cache-4.3.xsd=org/springframework/cache/config/spring-cache-4.3.xsd, http://www.springframework.org/schema/aop/spring-aop-4.2.xsd=org/springframework/aop/config/spring-aop-4.2.xsd, http://www.springframework.org/schema/lang/spring-lang.xsd=org/springframework/scripting/config/spring-lang-4.3.xsd, http://www.springframework.org/schema/context/spring-context-3.2.xsd=org/springframework/context/config/spring-context-3.2.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd=org/springframework/jdbc/config/spring-jdbc-4.2.xsd, http://www.springframework.org/schema/jms/spring-jms-3.0.xsd=org/springframework/jms/config/spring-jms-3.0.xsd, http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd=org/springframework/web/servlet/config/spring-mvc-4.2.xsd, http://www.springframework.org/schema/util/spring-util-3.1.xsd=org/springframework/beans/factory/xml/spring-util-3.1.xsd, http://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd, http://www.springframework.org/schema/oxm/spring-oxm-4.0.xsd=org/springframework/oxm/config/spring-oxm-4.0.xsd, http://www.springframework.org/schema/cache/spring-cache.xsd=org/springframework/cache/config/spring-cache-4.3.xsd, http://www.springframework.org/schema/tx/spring-tx.xsd=org/springframework/transaction/config/spring-tx-4.3.xsd, http://www.springframework.org/schema/lang/spring-lang-4.2.xsd=org/springframework/scripting/config/spring-lang-4.2.xsd, http://www.springframework.org/schema/context/spring-context-4.1.xsd=org/springframework/context/config/spring-context-4.1.xsd, http://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd, http://www.springframework.org/schema/beans/spring-beans-4.3.xsd=org/springframework/beans/factory/xml/spring-beans-4.3.xsd, http://www.springframework.org/schema/oxm/spring-oxm-3.1.xsd=org/springframework/oxm/config/spring-oxm-3.1.xsd, http://www.springframework.org/schema/tool/spring-tool-4.2.xsd=org/springframework/beans/factory/xml/spring-tool-4.2.xsd, http://www.springframework.org/schema/tx/spring-tx-2.0.xsd=org/springframework/transaction/config/spring-tx-2.0.xsd, http://www.springframework.org/schema/jee/spring-jee-4.2.xsd=org/springframework/ejb/config/spring-jee-4.2.xsd, http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd=org/springframework/jdbc/config/spring-jdbc-3.2.xsd, http://www.springframework.org/schema/task/spring-task-4.3.xsd=org/springframework/scheduling/config/spring-task-4.3.xsd, http://www.springframework.org/schema/aop/spring-aop.xsd=org/springframework/aop/config/spring-aop-4.3.xsd, http://www.springframework.org/schema/websocket/spring-websocket-4.0.xsd=org/springframework/web/socket/config/spring-websocket-4.0.xsd}
DEBUG [localhost-startStop-1] - Found XML schema [http://www.springframework.org/schema/beans/spring-beans.xsd] in classpath: org/springframework/beans/factory/xml/spring-beans-4.3.xsd
DEBUG [localhost-startStop-1] - Found XML schema [http://www.springframework.org/schema/tx/spring-tx.xsd] in classpath: org/springframework/transaction/config/spring-tx-4.3.xsd
DEBUG [localhost-startStop-1] - Found XML schema [http://www.springframework.org/schema/tool/spring-tool-4.3.xsd] in classpath: org/springframework/beans/factory/xml/spring-tool-4.3.xsd
DEBUG [localhost-startStop-1] - Found XML schema [http://www.springframework.org/schema/aop/spring-aop.xsd] in classpath: org/springframework/aop/config/spring-aop-4.3.xsd
DEBUG [localhost-startStop-1] - Loading bean definitions
DEBUG [localhost-startStop-1] - Neither XML 'id' nor 'name' specified - using generated bean name [org.mybatis.spring.mapper.MapperScannerConfigurer#0]
DEBUG [localhost-startStop-1] - Loaded NamespaceHandler mappings: {http://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler, http://www.springframework.org/schema/mvc=org.springframework.web.servlet.config.MvcNamespaceHandler, http://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler, http://www.springframework.org/schema/jee=org.springframework.ejb.config.JeeNamespaceHandler, http://www.springframework.org/schema/websocket=org.springframework.web.socket.config.WebSocketNamespaceHandler, http://www.springframework.org/schema/aop=org.springframework.aop.config.AopNamespaceHandler, http://www.springframework.org/schema/oxm=org.springframework.oxm.config.OxmNamespaceHandler, http://www.springframework.org/schema/jdbc=org.springframework.jdbc.config.JdbcNamespaceHandler, http://www.springframework.org/schema/cache=org.springframework.cache.config.CacheNamespaceHandler, http://www.springframework.org/schema/c=org.springframework.beans.factory.xml.SimpleConstructorNamespaceHandler, http://www.springframework.org/schema/tx=org.springframework.transaction.config.TxNamespaceHandler, http://www.springframework.org/schema/jms=org.springframework.jms.config.JmsNamespaceHandler, http://www.springframework.org/schema/task=org.springframework.scheduling.config.TaskNamespaceHandler, http://www.springframework.org/schema/lang=org.springframework.scripting.config.LangNamespaceHandler, http://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler}
DEBUG [localhost-startStop-1] - Loaded 8 bean definitions from location pattern [classpath:spring/applicationContext.xml]
DEBUG [localhost-startStop-1] - Bean factory for Root WebApplicationContext: org.springframework.beans.factory.support.DefaultListableBeanFactory@d46d699: defining beans [dataSource,mybatisSqlSessionFactory,org.mybatis.spring.mapper.MapperScannerConfigurer#0,prodService,transactionManager,txAdvice,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0]; root of factory hierarchy
DEBUG [localhost-startStop-1] - Registering scope 'request' with implementation [org.springframework.web.context.request.RequestScope@4c887991]
DEBUG [localhost-startStop-1] - Registering scope 'session' with implementation [org.springframework.web.context.request.SessionScope@484c6715]
DEBUG [localhost-startStop-1] - Registering scope 'globalSession' with implementation [org.springframework.web.context.request.SessionScope@1003b8c8]
DEBUG [localhost-startStop-1] - Registering scope 'application' with implementation [org.springframework.web.context.support.ServletContextScope@604bb76d]
DEBUG [localhost-startStop-1] - Creating shared instance of singleton bean 'org.mybatis.spring.mapper.MapperScannerConfigurer#0'
DEBUG [localhost-startStop-1] - Creating instance of bean 'org.mybatis.spring.mapper.MapperScannerConfigurer#0'
DEBUG [localhost-startStop-1] - Eagerly caching bean 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' to allow for resolving potential circular references

后面呢?错误信息呢

你把ERROR发出来看看啊。光把正常的发出来。。。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

SBF888胜博发娱乐大型高并发网站的日志架构是什么样子?一般存储哪些数据?

( SBF888胜博发娱乐 )

这里是否有来自BAT的开发和运维,或者有大型高并发网站开发运维经验的大神?

请问一下你们开发过的网站一般日志架构都是什么样子?后端如何存储,前后端服务器如何与日志服务器进行通信?

还有日志一般都要存储一些什么东西?哪些地方需要记录日志?

日志一般保存多久,像BAT之类的网站日均PV非常大,那么那么多的日志该怎么保存?

我是来自一个很小公司底层的小小码农。。哭

如果使用的开发语言本身效率就很好的话就好说,做一个单例的日志类,按模块将日志文件划分开,日志详细到能够根据日志还原程序运行时的情景。 如果语言效率不是很高(PHP python),要考虑到并发的话,可以使用C++ 写扩展。

运维本来就是非常简单的东西,小小日志系统根本不需要BAT经验也能随便想出来。

日志直接本地循环写文件,然后日志系统远程收集。如果需要进行业务跟踪,那就设计一套编号原则,把一个请求经过的每个组件都按照规则编上号存到日志里,取日志时就能还原整个流程。存储的话,项目组有多少资源,就存多少日志呗。日志这个东西,当然存的越久越好。至于怎么存,没钱就存到渣渣PC集群 + 渣渣机械硬盘上,有钱直接上光交 + 专用存储设备 + 高性能SSD。

(看完/读完)这篇文章有何感想! SBF888胜博发娱乐的分享…

唯一授权官网请问javac 编译,如何引用定义在其他文件夹的包?

( 唯一授权官网 )

我在编译BeerSelect.java提示如下错误:

E:\wsj\JavaWeb\BeerSelect>javac -d classes src\com\example\web\BeerSelect.java
src\com\example\web\BeerSelect.java:3: 错误: 程序包com.example.model不存在
import com.example.model.BeerExpert;
                        ^
src\com\example\web\BeerSelect.java:20: 错误: 找不到符号
        BeerExpert beerExpert = new BeerExpert();
        ^
  符号:   类 BeerExpert
  位置: 类 BeerSelect
src\com\example\web\BeerSelect.java:20: 错误: 找不到符号
        BeerExpert beerExpert = new BeerExpert();
                                    ^
  符号:   类 BeerExpert
  位置: 类 BeerSelect
3 个错误

E:\wsj\JavaWeb\BeerSelect>
E:\wsj\JavaWeb\BeerSelect>

我检查BeerSelect.java导入的路径:import com.example.model.BeerExpert;但编译不过,不清楚哪里不对,求教大家能不能帮我看看? 本人刚在学习servlet相关的。

—————————————以下相关信息————————————–

目录结构如下:

BeerExpert.java的代码

package com.example.model;

import java.util.ArrayList;
import java.util.List;

public class BeerExpert {
    public List getBrands(String color){
        List brands = new ArrayList();
       return (brands);
    }
}

BeerSelect.java的代码

package com.example.web;
import com.example.model.BeerExpert;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.List;

public class BeerSelect extends HttpServlet {
    public void doPost(HttpServletRequest request,
                       HttpServletResponse response)
               throws IOException, ServletException{
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Beer Selection Advice<br>");
        String c = request.getParameter("color");
        out.println("<br>Got beer color " + c);
        BeerExpert beerExpert = new BeerExpert();
        List result = beerExpert.getBrands(c);
    }
}

系统环境变量:

  1. 在命令行里面输java -version能正常显示吗?

  2. 最后一个环境变量不需要设置

(看完/读完)这篇文章有何感想! 唯一授权官网的分享…

胜博发娱乐游戏导航【SOS】nginx无法解析php文件?

( 胜博发娱乐游戏导航 )

已经在服务器上装了nginx和php,php-fpm(监听9000端口)
可以正常显示html,但是每当输入url打开一个php时,无法正常解析,导致变成下载模式

nginx.conf如下

现在打开php直接变成404…Orz

干脆贴出来吧,估计是这一段的问题,搞了好久都没进展….

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
}

这样写试一下 用nginx -t命令检查你的nginx配置文件是否有错误
location /index.php {

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

}

我以前也有过,当时是centos6,后来换成7了。
之后绑定好域名就好了

还能显示nginx的画面
问题是我用域名安装源码怎么就显示404
用ip安装弹出php文件的下载,php我也运行了啊。
网站默认主目录我也已经定位到www.38934.tech上面了。
苦恼啊!
2016-10-26 09:33:34
管理员
请您确保以下3个设置:

  1. 域名解析到服务器IP

  2. Nginx网站管理里有配置这个域名

  3. 修改完配置后有重载或重启Nginx
    目前已为你修正配置。

第一步 nginx.conf的配置

location / {
        if (!-e $request_filename) {
             rewrite  ^/(.*)$  /index.php/$1  last;
             break;
        }
    }

    location ~ ^/s-([0-9a-z]+)-(.*) {
        rewrite ^/s-([0-9a-z]+)-(.*) /shtmls/$1/$2 last;
        break;
    }

    location ~ .+\.php($|/) {
        set $script    $uri;
        set $path_info  "/";
        if ($uri ~ "^(.+\.php)(/.+)") {
              set $script     $1;
              set $path_info  $2;
        }

        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SCRIPT_FILENAME  $document_root/$script;
        fastcgi_param SCRIPT_NAME $script;

    }

第二步 sudo vim /etc/php5/fpm/pool.d/www.conf
将 ;listen = /var/run/php5-fpm.sock
改成 listen = 127.0.0.1:9000

你的代码直接放在/root里么?你改过之后的完成配置也发一下吧。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

胜博发娱乐游戏导航如何在自己的项目中实现word在线编辑

( 胜博发娱乐游戏导航 )

希望能在自己(公司)的项目中实现word在线编辑,感觉无从下手

(不好意思,没说清楚,我补充一下:比如我上传了一份word,然后能在线编辑这个word文件,编辑之后能保存)

谢邀~
富文本编辑器
http://summernote.org/

你可以使用百度的ueditor
http://ueditor.baidu.com/webs…

如果不考虑富文本编辑器的话,硬要实现office系列的在线编辑。

你大概有以下几条路走:
1、只考虑IE,用专有ActiveX插件,实现浏览器里面编辑office文档。https://github.com/stone0090/…
2、现代浏览器,接入在线的office online 。

不要说在线 Word 编辑,就是在线 Word 阅读都已经很不容易了,这个功能太专业了。

网上能搜到一些阅读组件,大部分是收费的,比如永中的高清服务器版本收费大概是80K。

另外,你可以去看看 Open Office 有没有提供相关的组件。Open Office 一直是开源的 Office 解决方案。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…

胜博发娱乐游戏导航php中的字符编码

( 胜博发娱乐游戏导航 )

$str1 = "\xe4\xb8\xad";

$str2 = '\xe4\xb8\xad';

$str3 = '中';

能否详细解释一下三者的区别,是否可以相互转化

第一次在segmentfault上回答问题。。

PHP字符串变量,双引号和单引号的意义是不同的

使用双引号时会转义 单引号时不转义
使用双引号时,$xxxx文本会被相应变量的值替换,单引号没有这个效果

Eg.

$abc='123';
echo "$abc"; //这样会输出123
echo '$abc'; //这样会输出$abc
echo "\n"; //这样会输出一个换行符
echo '\n'; //这样会输出\n两个字符(一个斜杠一个n)

回到问题,
“中”这个汉字在UTF-8的16进制编码是0xe4,0xb8,0xad
因此在双引号字符串中,会被转义为 “中” x开头表示这是一个以十六进制表达的字符,就和HTML中&xe4; 一样
单引号字符串中,直接输出xe4xb8xad

如果你的环境编码是在UTF-8下面, str1和str3等价, 如果直接echo, 都会输出”中”, 如果是二进制层面三个字节比较, 也是完全相等, PHP中的字符串就是直接本地编码二进制存储的

如果你的环境编码是非UTF-8(例如GBK), str1基本上是个乱码, str1和str3也不再等价

至于str2, 它无论什么时候都会输出 ‘\xe4\xb8\xad’ (不含引号, 在单引号的字符串中, 只有单引号本身需要转义成\’, 其它情况的\都视为普通字符处理

只解释第一个与第二个的区别,也就是单引号与双引号的区别

双引号:引号内部会被转义
单引号:引号内部不会被转义

$a = 123;

echo "output:$a";//output:123
echo 'output:$a';//output:$a

//下面的示例仅限linux的php-cli
echo "new line\nsecond line";
/*
会换行,输出:
new line
second line
*/

echo 'no new line\n aaa';
/*
不会换行,输出:
no new line\n aaa
*/

\x后跟着十六进制数字的属于转义字符,转义字符只有在双引号"中才起作用。单引号中只有对单引号本身'和反斜杠\的转义有效,其他的都无效。

PHP本身不区分字符编码。也就是说,$str1是一个三字节的字符串,字符串的三个字节分别是(十六进制编码)E4 B8 AD。如果在UTF-8编码中,就是字。其他编码中就不一定了。

$str2则是一个12字节的字符串,就是你输入的那些字符。

$str3则是一个字符串,如果你把文件以UTF-8编码保存,那就和$str1是一样。如果你以GBK保存,那就是两个字节的D6 D0,如果你以BIG5保存,就是A4 A4


不管是UTF-8、GBK还是BIG5,甚至于很多其他的语言编码,都是遵循EUC的,也就是说对于ASCII字符,他们的编码都是一致的,所以无论用哪种编码保存,对PHP的代码工作都不会有影响。但是对于非ASCII字符就有很大的区别。

所以PHP中的非ASCII字符要正常显示,就要保证你的保存编码和输出编码是一致的。如果是输出的是HTML,是通过meta标签或者在HTTP Header中声明编码的。如果不一致,那就会出现乱码了。

(看完/读完)这篇文章有何感想! 胜博发娱乐游戏导航的分享…