Markdown: Syntax Main Basics Syntax License Dingus Overview Philosophy Inline HTML Automatic Escaping for Special Characters Block Elements Paragraphs and Line Breaks Headers Blockquotes Lists Code Blocks Horizontal Rules Span Elements Links Emphasis Code Images Miscellaneous Backslash Escapes Automatic Links Note: This document is itself written using Markdown; you can see the source for it by adding ‘.text’ to the URL. Overview Philosophy Markdown is intended to be as easy-to-read and easy-to-write as is feasible. Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with...…
Intellij IDEA使用记录
记录IDE使用过程中遇到的问题、解决方案 ##项目编译环境调整 同时修改JDK、Language level、及Setting->Java compiler中的配置。 ##JDK Language level JDK:使用的编译版本 Language level:代码编译检查的最低版本,比如设置为5.0就不能使用6.0、7.0的特性代码 可以配置Project的默认配置,也可以精确到每个Modules ##代码中使用Tab指标符 …
使用maven生成带依赖的jar
编译、打包需要一个独立运行的jar。 ##生成MAINFEST.MF 项目源码根路径下添加META-INF/MAINFEST.MF文件,用于指向还有启动类。 ##maven配置修改 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <!--指明main方法所在的类--> <mainClass>com.wei.spider.Main</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <!--指明main方法所在的类--> <mainClass>com.wei.spider.Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> ##编译打包、运行 使用命令mvn clean compile assembly:single打包项目。使用java -jar demo.jar运行。 …
web项目中资源文件编译后改变
解决resources目录中配置文件改变的问题,spring中使用静态注入 ##保持资源文件在编译后不变 由于项目中用到了17mon的IP库,数据已文件的形式放在项目下的resources,但每次编译完发现在target下省城的对应的文件已改变,猜测是使用maven编译时,对不同类型的资源文件进行了处理,尝试使用maven的Maven Resources Plugin插件排除特殊的资源文件 修改Maven Resources Plugin插件配置,排除指定类型的文件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <configuration> <nonFilteredFileExtensions> <nonFilteredFileExtension>dat</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin> 重新编译后,使用md5命令对比两个文件,target下的资源文件未改变,一起正常。 ##Spring中的静态注入 要在spring中使用静态注入需要满足两个条件: 声明静态属性的set方法 使用org.springframework.beans.factory.config.MethodInvokingFactoryBean向类中的方法注入 如要注入path: private static String path; public static setPath (newPath){ path=newPath; } spring配置如下: <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod" value="com.wei.shimao.utils.IPLoactionUtils.setPath"/> <property name="arguments"> <value> ${ipdbpath} </value> </property> </bean> …
spring mvc使用自定义拦截器
##配置修改 在spring mvc配置文件中添加如下节点: <!--interceptor setting --> <mvc:interceptors> <mvc:interceptor> <!--设置匹配路径--> <mvc:mapping path="/mvc/**"/> <bean class="com.wei.springsimple.interceptor.SysInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> ##定义拦截器 public class SysInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("preHandle"); return true; } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("postHandle"); } @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("afterCompletion"); } } 注: preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器,返回值:true表示继续流程(如调用下一个拦截器或处理器);false表示流程中断(如登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应; postHandle:后处理回调方法,实现处理器的后处理(但在渲染视图之前),此时我们可以通过modelAndView(模型和视图对象)对模型数据进行处理或对视图进行处理,modelAndView也可能为null。 afterCompletion:整个请求处理完毕回调方法,即在视图渲染完毕时回调,如性能监控中我们可以在此记录结束时间并输出消耗时间,还可以进行一些资源清理,类似于try-catch-finally中的finally,但仅调用处理器执行链中preHandle返回true的拦截器的afterCompletion。 …
spring-task使用注意事项
在spring的主配置和spring-mvc配置中添加task。 ##使用主配置文件 task相关配置内容如下: <context:component-scan base-package="com.yizhenmoney.damocles.crs.scheduler"/> 业务逻辑代码 @Component @EnableScheduling public class AgeScheduler { @Scheduled(cron = "0 0 0 1 1 ?") public void execute() { } } 注: 需要在类上添加@EnableScheduling注解; 如果spring的主配置中配置了default-lazy-init="true"属性,需要在task的类上添加@Lazy(value=false)使其启动时创建对象。 ##使用mvc配置文件 配置添加如下内容: xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd <context:component-scan base-package="com.yizhenmoney.damocles.crs.controller,com.yizhenmoney.damocles.crs.scheduler"/> <task:annotation-driven/> <task:executor id="myExecutor" pool-size="5"/> <task:scheduler id="myScheduler" pool-size="10"/> 业务逻辑代码 @Component public class AgeScheduler { @Scheduled(cron = "0 0 0 1 1 ?") public void execute() { } } <connector implementation="org.eclipse.jetty.server.bio.SocketConnector"/> <connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector"/> …