Register

  • 点击获取
  •   

已有账号直接登录    

公告:

热门文章 如何用Java用MQTT协议操作底层硬件设备?

时间:2018-2-7 作者:RainFly   分类: Java   热度: 7633°  评论:3  
时间:2018-2-7   分类: Java    热度:7633   评论:3

近期项目需要用到底层通讯的继而采用MQTT

    之前已经搭建过MQTT 并且用websocket技术进行连接了 http://www.rainfly.cn/?post=285

在EMQTT官网下载 Windows 10 x64 位的包 后解压到目录下面 然后 运行起来

用本地通讯猫测试工具 检查是否开启正常!

在Maven中添加上相关依赖的包 

<dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.0.2</version> </dependency>

实现代码:打包下载 ->  https://github.com/Rain-Fly/MQTT

热门文章 Java向类的属性中注入值

时间:2018-2-2 作者:RainFly   分类: Java   热度: 4284°  评论:2  
时间:2018-2-2   分类: Java    热度:4284   评论:2

三种方法

第一种:使用set方法注入 public class User { private String name; public void setName(String name) { this.name = name; } } User user = new User(); user.setName("abcd"); 第二种 有参数构造注入 public class User { private String name; public User(String name) { this.name = name; } } 第三种使用接口注入 interface Dao { public void setName(String name); } public class DaoImpl implements Dao { private String name; public void setName(String name) { this.name=name; } }

热门文章 给你的IntelliJ IDEA PhpStorm WebStorm添加彩色控制台

时间:2018-2-2 作者:RainFly   分类: Java   热度: 10793°  评论:1  
时间:2018-2-2   分类: Java    热度:10793   评论:1

给编译器打印控制台添加彩色信息  官方文档  --》传送门

由于Intellij idea不支持显示ascii颜色,grep-console插件能很好的解决这个问题,下面就以开发JavaEE项目中,结合Log4j配置多颜色日志输出功能。

下载好上述压缩包,无需解压。

选择好ZIP文件 后会提示重新启动,当重启完成,插件安装成功后,设置log4j输出状态对应的颜色

剩下工作就是配置使用log4J 来提示文档

配置Log4j Maven配置文件pom.xml添加log4j的信赖

<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </version> </dependency>

在resource 文件夹添加log.4j的配置文件 log4j.properties 并添加如下内容

### set log levels ### log4j.rootLogger = debug , stdout ### 输出到控制台 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 输出到日志文件 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志 log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

测试最终效果 应用JUnit写如下测试代码

@Test public void testLoger(){ final Logger logger = Logger.getLogger("TestErrOut"); logger.debug(" This is debug!!!"); logger.info(" This is info!!!"); logger.warn(" This is warn!!!"); logger.error(" This is error!!!"); logger.fatal(" This is fatal!!!"); }

热门文章 Spring IOC原理的实现

时间:2018-2-2 作者:RainFly   分类: Java   热度: 4451°  评论:2  
时间:2018-2-2   分类: Java    热度:4451   评论:2

Spring框架,IOC 实现原理  可以降低类与类之间的耦合性 解耦

applicationContext.xml  中对been进行配置

<bean id="userService" class="cn.rain.UserService" /> 

IOC DI工厂

通过 dom4j 对xml文件进行解析  根据id =userService  获得class对象 

String classValue = "获得的class属性值"

使用反射创建类对象 ->>>传送门 (介绍反射)

 通过class属性值获取类对象 

Class clazz = Class.forName(classValue); 

通过类对象创建 UerService对象 

UserService service = clazz.newInstance();

返回创建好的对象

return  service;

热门文章 maven使用出现的问题

时间:2018-1-29 作者:RainFly   分类: Java   热度: 9664°  评论:0  
时间:2018-1-29   分类: Java    热度:9664   评论:0

内容代码没有错误 但是项目出现错误,

先找到错误在哪。 Problems选项卡会有详细的错误描述。 如果被关闭了的话,重新打开方法: Eclipse,选Window,Show View,Other,Problems。

热门文章 如何简单的搭建PHP开发调试运行环境

时间:2018-1-25 作者:RainFly   分类: Web程序设计   热度: 10291°  评论:2  
时间:2018-1-25   分类: Web程序设计    热度:10291   评论:2

第一步:下载相应的资源

        PhpStorm2017.3.3 下载地址:http://www.oyksoft.com/soft/40722.html

        PhpStudy 下载地址: http://www.phpstudy.net

        XdebugHleper 是Google浏览器的插件,可以直接去谷歌商店里面下载

安装PhpStudy,该软件一键安装使用很方便 自动安装Windows环境下的Apache +PHP +MySQL (包括Mysql-Front、PhpMyAdmin等软件)

安装XdebugHelper插件

点击Debug会又灰色变成绿色

启动PhpStudy,点击切换版本 php-5.6.27-nts+Apache

二、配置xdebug 1.在phpstudy上打开xdebug选项

2.打开php.ini,并完成配置

简单解释一下:直接在phpstudy上勾选xdebug,会自动配置好上图中的2007-2009三行,这是xdebug的基本配置,需要我们自己配置的就是图中红框里的内容。

xdebug.remote_enable=1 # 开启远程调试 xdebug.idekey='PHPSTORM' # sessionkey xdebug.remote_port=9001 # 远程调试通信端口

idekey不要填写别的,xdebug helper给phpstorm的就这个,没得选。端口默认的是9000,这个和fastcgi端口冲突,所以就改了。xdebug其他的配置项都是默认的就行。

重启nginx,打开phpinfo确认一下配置是否正确。

三、设置phpstorm 1.打开设置对话框FIle->Settings(默认快捷键Ctrl+Alt+S)

2.配置Debug :Languages & Frameworks -> PHP -> Debug,只需要把DebugPort端口改为9001,和xdebug的配置保持一致

3.配置Server(就在Debug下面一个) :Languages & Frameworks -> PHP -> Servers,新建一台本地服务器(绿色加号),填写服务器名字以及host,确认debugger是xdebug

第四步:新建调试项目

添加本地PHP版本和之前选的PhpStudy的php版本一样

选择对应的版本 php.exe文件

目录建立在 PHPStudy目录文件夹下的 WWW中 这样方便直接进行调试!

注意将调试按钮打开!

访问homepage就会自动跳转到调试接口!

热门文章 EasyUI-ajax提交表单

时间:2018-1-17 作者:RainFly   分类: Java   热度: 8138°  评论:1  
时间:2018-1-17   分类: Java    热度:8138   评论:1

/* <form id="ff" method="post"> ... </form> */ function submitForm(){ /* form()参数: submit 提交表单 validate 用于验证提交 clear 清除所有表单项 load 记载记录来填充表单 * */ $('#ff').form('submit',{ url: "http://diao:8080/crmnew/customer/add", onSubmit: function(){ //提交前触发 //做一些检查来阻止提交 return $(this).form('validate'); }, //返回的状态需要是success success: function(result){ /* console.info(result); */ var result = eval('('+result+')'); if (result.success){ $('#dlg').dialog('close'); $('#datagrid').datagrid('reload'); } else { mesTitle = '新增用户失败'; } $.messager.show({ title: mesTitle, msg: result.msg }); } }); } function clearForm(){ $('#ff').form('clear'); } </script>

http://www.jeasyui.net/plugins/166.html

热门文章 Java反射机制

时间:2018-1-10 作者:RainFly   分类: Java   热度: 6047°  评论:0  
时间:2018-1-10   分类: Java    热度:6047   评论:0

反射的核心就是加载类,解剖出类的各个组成部分 例如:成员变量 、方法 、构造方法!

加载类的三种方法

/提取当前类的 Class 对象。 

方法1 Class claszz1=Class.forName("com.rain.demo.Person"); 方法2 Class claszz2=Person.class; 方法3 Class claszz3=new Hero().getClass();

解剖类的常用方法

//返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法 public Method getMethod(String name, Class<?>... parameterTypes) //返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。 public Field getField(String name) //私有 public Field getDeclaredField(String name) //私有 public Method getDeclaredMethod(String name, Class<?>... parameterTypes) //返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定私有构造方法。 public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)

反射功能实际作用是用来开发框架如:spring

实例

Person.java

package com.rain.demo; public class Person { public String name="123"; public Person(){ System.out.println("person"); } public Person(String name){ System.out.println("person name"); } public Person(String name,int password){ System.out.println("person name password"); } public void getString(){ System.out.println(name); } }

Demo1.java

package com.rain.demo; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.junit.Test; public class Demo1 { //反射新建类的对象 @Test public void test1() throws NoSuchMethodException, SecurityException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{ Class claszzClass = Class.forName("com.rain.demo.Person"); Constructor c = claszzClass.getConstructor(null); Person p = (Person)c.newInstance(null); System.out.println(p.name); } @Test public void test2() throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException{ //提取当前类的 Class 对象。 Class claszzClass1=Class.forName("com.rain.demo.Person"); //返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 Constructor c =claszzClass1.getConstructor(String.class); //使用此 Constructor 对象表示的构造方法来创建该构造方法的声明类的新实例, Person p = (Person)c.newInstance("xxxx"); System.out.println("test2"); System.out.println(p.name); } @Test public void test3() throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{ Person p = new Person(); Class claszzClass3=Class.forName("com.rain.demo.Person"); // Method method = claszzClass3.getMethod("getString", null); //方法名 参数 method.invoke(p, null); } }

热门文章 JSP动作元素 :useBean:setProperty ::getProperty学习

时间:2018-1-5 作者:RainFly   分类: Java   热度: 8591°  评论:1  
时间:2018-1-5   分类: Java    热度:8591   评论:1

JSP动作元素在请求处理阶段实例化一个javaBean,并且提供了设置获取方法

在model中创建javaBean,(其实就是java中的类)关于此概念解释 -> 传送门

创建好Javabean 在jsp中请求调用的方法

在浏览器打开 http://127.0.0.1:8080/Test/person.jsp

热门文章 记录配置SpringMVC开发环境

时间:2018-1-4 作者:RainFly   分类: Java   热度: 9639°  评论:1  
时间:2018-1-4   分类: Java    热度:9639   评论:1

Spring MVC就是一个MVC框架,个人觉得Spring MVC annotation式的开发比Struts2方便,可以直接代替上面的Struts(当然Struts的做为一个非常成熟的MVC,功能上感觉还是比Spring强一点,不过Spring MVC已经足够用了)。当然spring mvc的执行效率比struts高,是因为struts的值栈影响效率.以下是记录springMVC开发环境配置

首先下载jar包 :下载地址:http://repo.spring.io/release/org/springframework/spring/

spring 项目启动必须的依赖包  commons-logging-1.1.jar

第一步:在lib文件中添加jar包

第二步:修改web.xml 文件:详细介绍:https://www.cnblogs.com/shinejaie/p/5244258.html

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>SpringMVC</display-name> <!--配置所有请求的拦截器 --> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置DispatcherServlet的一个初始化参数:配置springMVC的配置文件的位置和名称--> <!-- 这里可以省略, 默认的配置文件为: /WEB-INF/<servlet-name>-servlet.xml--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/SpringMVC-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

第三步:添加spring-servlet.xml

热门文章 内网映射调试详细构建过程

时间:2018-1-4 作者:RainFly   分类: Web程序设计   热度: 4960°  评论:0  
时间:2018-1-4   分类: Web程序设计    热度:4960   评论:0

首先需要用内网穿透工具 :  花生壳 .NAT123. ngrok

我使用的是ngrok   :https://www.ngrok.cc/

将Tomcat 端口配置为80 (修改server.xml 配置文件) 可以百度Google方法

重启Tomcat 后发现端口改变   127.0.0.1:80   

注册登录ngrok后,添加隧道,在本地运行ngrok 启动脚本设置好 隧道ID,然后访问隧道的域名出现正常的页面

则构建成功 可以配合Eclipse实现联合调试!

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 谷歌地图   百度地图   
页面加载耗时:0.088秒 数据库查询次数:58次
背景设置
$