木之陽兮 卿云烂兮

0%

在使用Python开发爬虫工具的时候,有时候需要把数据存储进MySQL数据库中(尽管现在大多使用NoSQL如MongoDB),这个时候使用Python写一个类似Java中的数据库访问通用类就很方便了。以下是用Python实现Mysql数据库访问通用类

导入MySQLdb模块,实现数据库操作。

1
2
3
#-*-coding:utf8-*-
import MySQLdb
from importlib import reload

另外Python中的字符集特别麻烦,所有在文件头将其设为utf8的字符集

定义数据库访问通用类

使用MySQLdb中的connect(host = host,user = user, passwd = password, db = db, port = port,charset= ‘utf8’)进行数据库连接。直接上代码:

Read more »

在Java程序开发中,反射和Annotation极大地方便了我们在编程时注入对象。Spring框架的底层实现便大量地使用了反射和主机。这里使用的是javax.persistence包中定义的一些注解,除了javax.persistence包中已经定义好的一些注解,我们还可以根据需要自定义注解。

定义Bean,注意get方法和set方法命名的规范

Read more »

苦艾初长,乃是清明。游子思归,奈何列车有时而不我待,为了在这传统时节早日到家,不得不选择翘掉周五晚上的《软件体系结构》。而临走前对老师放下“豪言”曰:已了解过‘云计算’的相关介绍,言既出,莫敢食,查阅相关资料,在此写下此文表述自己的想法。

  2006年谷歌推出了“Google 101计划”,并正式提出“云”的概念和理论。随后亚马逊、微软、惠普、雅虎、英特尔、IBM等公司都宣布了自己的“云计划”,云安全、云存储、内部云、外部云、公共云、私有云…[1]  互联网的发展日新月异,尤其是近几年的速度快到不敢相信。我已经不记得在国内‘云’(Cloud)这个词为什么突然火起来的了,就像不知道为什么在我眼里11年塞班的世界,12年怎么就突然成为了安卓的世界。也许,是因为那是忙着高考的我们无暇顾及互联网世界的变化。

  在这互联网的时代,我们每天都在和互联网产品打交道,从百度云到微云到阿里云,‘云’对于我们大多数人来说既熟悉也陌生,那么‘云’究竟所谓何物?

Read more »

JVM在执行JAVA程序时,会将不同的数据装载并存放在不同的内存区中这些数据内存区统称为”Runtime Data Area”,
其中即分为我们熟识的三个主要区域:Heap、Stack和Method Area

Heap(堆)

在Java程序运行时,只有一个Heap区域,用于存放程序所有的对象(不包括基本的数据类型),是线程共享的区域,我们常提到的GC
基本都是活动在这个区域。和C语言一样,Heap区域需要由程序员手动申请空间,但是因为java中存在GC,java中就不需要像C语言一
样,实时地考虑对不再使用的空间进行释放

Stack(栈)

栈是一种FILO(先进后出)的数据结构,在JVM中,栈区是绑定在java程序的每一个线程上的,存放局部变量、对象的引用、操作指令等,
并且为线程所私有,不允许被其它线程访问,所以线程的生命周期就是栈的声明周期。

栈中维护的单位为栈帧,每调用一个方法,都会启用一个栈帧,而方法中的局部变量、操作数都是存放在栈帧中。Java中方法调用的过程
也是对栈的操作过程。

Method Area (方法区)

方法区也称静态区,是JVM的一个逻辑内存区域,在编译、执行Java程序时,类加载器(ClassLoader)加载的类(描述)信息会存入
方法区。对于静态变量,因为是所有实例化对象全局共享的,所以指向的是同一块内存,故从设计上静态变量也应该是在类加载时装载
进方法区的类信息,因此静态变量也是存储在方法区中的。

Chapter 2. The Structure of the Java Virtual Machine

The Java Virtual Machine has a method area that is shared among all Java Virtual Machine threads. The method area is analogous to the storage area for compiled code of a conventional language or analogous to the “text” segment in an operating system process. It stores per-class structures such as the run-time constant pool, field and method data, and the code for methods and constructors, including the special methods used in class and instance initialization and interface initialization.

Read more »

1:Aspect切面的配置

(1)通过@Aspect注解定义切面,调用被定义为切点的方法时,会自动加入增强

1
2
3
4
5
6
7
8
9
10
11
@Aspect//注解将PreGreetingAspect定义为一个切面

public class PreGreetingAspect{

@Before("execution(* greetTo(..))")//@Before,@After等注解表示增强类型

public void beforeGreeting(){

System.out.println("-----before advice-----");

}
Read more »

1.开始使用Spring MVC

【1】. 配置web.xml以及在web.xml中配置DispatcherServlet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 <context-param>
<param-name>contextConfigLocation</param-name>
<!—此处指定applicationContext等配置文件的位置-->
<param-value>classpath:org.package.example</param-value>
</ context-param >
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>此处定义一个名字</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-start>1</load-on-start>
<!—以下这段可以不配置-->
<init-param>
<param-name>
<!—使用这个指定的话,servlet文件的名字就不是<servlet-name>-servlet.xml,而是servlet-name.xml-->
</param-name>
<param-value>
<!—指定DispatcherServlet的路径-->
</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>servlet-name<servlet-name>
<url-pattern>*.x(如*.html等)</url-pattern>
<!-指定处理某种后缀的http请求类型-->
</servlet-mapping>
Read more »

  • 安装Git

下载并安装msysgit或者是msysgit中文版,如果你想了解点Git的基础命令,我推荐以下博文:Git常用的基础命令,史上最全github使用方法:github入门到精通,当然即使你不懂Git的命令,跟着本博文走,也完全没问题。

  • 安装Node.js

下载并安装Node.js,此处我建议安装完毕后重启电脑,因为我当初安装完没重启,结果后面使用命令安装hexo的时候,提示无效的命令,因此推荐重启。当然,你也可以选择等到后面遇到问题,再选择重启。

Read more »