Register

  • 点击获取
  •   

已有账号直接登录    

公告:

热门文章 Ubuntu14.04如何安装JDK1.7Tomcat7

时间:2019-2-16 作者:RainFly   分类: Java   热度: 5317°  评论:23  
时间:2019-2-16   分类: Java    热度:5317   评论:23

1.首先先准备好    jdk1.7 linux  和tomcat7的安装包(这里使用的是jdk linux 32位的 文章底部奉上需要的安装包)

    

2. 将包文件拷贝到用户目录 我这里是 /home/rain/

3.解压 jdk文件  和tomcat文件

tar -zxvf a*****

4.打开 vim  /etc/profile   在最后一行插入下面的数据

#set java environment JAVA_HOME=/home/rain/jdk1.7.0_80 JRE_HOME=/home/rain/jdk1.7.0_80/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH

注意需要将上面的/home/rain/** 目录替换成自己jdk的目录

5. 输入 source /etc/profile  刷新环境变量后  输入 java -version 查看控制台

    如果显示当前数据表示jdk已经完成安装了

6.进入解压后的tomcat 目录中 找到bin目录并进入

      直接在命令行输入  ./catalina.sh  run   如果出现以下的信息表示启动完成了,直接通过浏览器访问 Http:xxx.xxx.xxx.xxx:8080/

热门文章 如何提取SVN中Eclipse、maven构建工程导入到IntelligIDEA中?

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

本地有一个工程使用的是Eclipse maven构建的,由于需要将其移动到IDEA中开发,继而将导入步骤做出一下记录,方便查阅

第一步  打开IDEA checkout 源文件

     本地需要先安装SVN工具  command line dient tools 必须安装     -> 传送门

      

    

    

选中一个目录 提取到该目录下面 (一般选择第二个)  E:\idea_project\chouchou

        

直接导入Eclipse 模型 (maven 配置后面会自动检测) 一直下一步 下一步  是

如果导入的工程目录文件夹错误           ,

    

将工程导入到IDEA后 系统会在右下角提示这是一个maven 工程(不要急着构建maven工程 先将lib下面的 包引入到工程中)  put into  WEB-INF/lib  下面

    

点击右侧 导航条 的maven      (此步骤可以省略)    

打开项目结构  (导航栏上方按钮)

   

修改 SDK   我用的是jdk 1.7   及 非maven jar 包  导入

点击 jars 或目录 

添加 Artifacts

查看刚才加入 的外部lib 有没有复制到 WEB-INF/lib/ 下面   如果没用 在右侧加入

打开设置 配置本地的maven

配置一个tomcat 就可以运行启动了

注意上述 完成 需要用 war exploded 来调试   文件发布 ,不要用war 包发布 ,修改 jsp之类的静态文件 不会自动更新

如果导入的工程文件        结构混乱 

按下列步骤操作: 1. 关闭IDEA,  2.然后删除项目文件夹下的.idea文件夹 3.重新用IDEA工具打开项目

如果导入的工程 出现找不到配置文件 (resource)

项目的pom 文件需要 引入以下maven 配置支撑

<build> <finalName>high-tech</finalName> <plugins> <!-- 更改maven默认的打包目录 --> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webappDirectory>${basedir}/src/main/webapp</webappDirectory> <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>utf8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.7</version> <executions> <execution> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> </execution> </executions> <configuration> <includeScope>system</includeScope> <outputDirectory>${basedir}/src/main/webapp/WEB-INF/lib</outputDirectory> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>

热门文章 SSM框架 spring配置文件

时间:2018-4-18 作者:RainFly   分类: Java   热度: 14659°  评论:5  
时间:2018-4-18   分类: Java    热度:14659   评论:5
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- spring的配置文件 一般写入数据源 事务控制 mybatis扫描 mapper 文件中 IOC控制器中 --> <!-- 扫描service 层下面所有的 @Server 加入ICO容器中 --> <context:annotation-config /> <context:component-scan base-package="com.rain.service" /> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --> <property name="url" value="jdbc:mysql://localhost:3306/power?characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="root" /> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="3" /> <property name="minIdle" value="3" /> <property name="maxActive" value="20" /> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait" value="60000" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value="SELECT 1" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> </bean> <!-- mybatis 和spring 进行整合 --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="typeAliasesPackage" value="com.rain.pojo" /> <property name="dataSource" ref="dataSource"/> <!-- 指定mybatis mapper文件的地址 --> <property name="mapperLocations" value="classpath:com/rain/mapper/*.xml"/> <property name="plugins"> <array> <!-- pagehelper --> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <!--使用下面的pagehelper方式配置参数,一行配置一个 --> <value> </value> </property> </bean> </array> </property> </bean> <!-- 配置扫描器 将 mybatis 接口的实现加入 ioc 容器中 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 扫描 该包路径下 所有 DAO接口的实现 加入 到 IOC容器中 --> <property name="basePackage" value="com.rain.mapper"/> </bean> <!-- 配置spring的PlatformTransactionManager,名字为默认值 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 开启事务控制的注解支持 比较多的使用 xml配置形式的事务--> <aop:config> <!-- 切入点表达式 --> <aop:pointcut expression="execution(* com.rain.service..*(..))" id="txPoint"/> <!-- 事务增强 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/> </aop:config> <!-- 配置事务增强 如何切入 --> <tx:advice id="txAdvice"> <tx:attributes> <!-- 所有方法都是事务方法 --> <tx:method name="*" /> <!-- 以get开始的所有方法 --> <tx:method name="get*" read-only="true"/> </tx:attributes> <!-- spring配置文件核心点 数据源 与mybatis 整合 --> </tx:advice> </beans>

热门文章 如何用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。

热门文章 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

热门文章 Servlet学习笔记(一)

时间:2017-12-22 作者:RainFly   分类: Java   热度: 9537°  评论:0  
时间:2017-12-22   分类: Java    热度:9537   评论:0

当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

由于常驻内存继而创建新的进程会出现资源的同步互斥现象;

Servlet: 同CGI程序 用来处理当前HTTP server交互数据

测试源码:

web.xml 文件中 指明项目访问路径 servlet-pattren  打开Tomcat 通过多开多个浏览器进行访问查看全局变量i的数值 

全局变量在多线程访问时不断改变

需要将多个线程访问的资源加上锁,现在这种做法是给Servlet对象加了一把锁,保证任何时候都只有一个线程在访问该Servlet对象里面的资源,这样就不存在线程安全问题了

synchronized (this) { //Java中每个对象都有一把锁,这里的this指的就是servlet对象 response.setContentType("text/html"); i++; String s=i+""; try { Thread.sleep(100); } catch (InterruptedException e) { // TODO: handle exception e.printStackTrace(); } response.getWriter().write(s); }

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