最近有必定時間,決定繼續個人博客之旅,這一次,準備作一個博客,並將此開源。html
採用技術:java
controller:springmvcmysql
ioc、aop:選擇spring,選擇spring,一來spring確實好用,二來springmvc也是spring中的web的一部分,能夠無縫結合,本來準備選擇guice來做爲web
ioc容器,guice號稱比spring快六倍,可是guice在使用上比較麻煩,所以不決定採用guice。spring
orm:mybatis,hibernate也不錯,可是mybatis比較方便對sql進行調優,使用也比較簡單,而且在當前互聯網中,mybatis也比較流行,所以就選擇這種。sql
如今開始BlogApp的搭建:mongodb
採用maven來進行管理項目,其中有如下四個模塊:apache
Blog-Common:保存所需的一些工具類編程
Blog-Core: domain層,dao層都保存在這裏。tomcat
Blog-User service層都存儲在這裏。
Blog-Web controller,view視圖都保存在這裏。
圖以下:
root中的pom所採用的依賴以及插件以下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.com</groupId> <artifactId>BlogApp</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>Blog-Web</module> <module>Blog-User</module> <module>Blog-Core</module> <module>Blog-Common</module> </modules> <name>BlogApp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>3.1.1.RELEASE</spring.version> <mysql.version>5.1.23</mysql.version> <dbcp.version>1.4</dbcp.version> <morphia.version>1.0.1</morphia.version> <guava.version>19.0</guava.version> <mongodb.version>3.2.0</mongodb.version> <lombok.version>1.16.6</lombok.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>cn.com</groupId> <artifactId>Blog-User</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>cn.com</groupId> <artifactId>Blog-Common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>cn.com</groupId> <artifactId>Blog-Core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!--mybatis start--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version> </dependency> <!--Mybatis end--> <!-- database start --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>${dbcp.version}</version> </dependency> <!-- database end --> <!--morphia--> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>${mongodb.version}</version> </dependency> <dependency> <groupId>org.mongodb.morphia</groupId> <artifactId>morphia</artifactId> <version>${morphia.version}</version> </dependency> <!--guava--> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> <version>${lombok.version}</version> </dependency> <!--log4j--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!--javax inject--> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> </dependencies> </dependencyManagement> <build> <finalName>BlogApp</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <port>9090</port> <path>/Blog</path> <uriEncoding>UTF-8</uriEncoding> <finalName>Blog</finalName> <server>tomcat7</server> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>這裏採用的服務器插件爲tomcat7,但採用jetty也不錯,這裏再另外描述一下guava和morphia。
有可能博客裏面會用到異步編程,因此這裏採用guava的EventBus來實現,morphia是mongodb的orm框架,博客文章的保存,我準備使用mongodb來
保存這個,所以在這採用mongodb和morphia。
Blog-core的pom文件爲:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>BlogApp</artifactId> <groupId>cn.com</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>Blog-Core</artifactId> <packaging>jar</packaging> <name>Blog-Core</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!--Blog-Common--> <dependency> <groupId>cn.com</groupId> <artifactId>Blog-Common</artifactId> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--log4j--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <!--mybatis start--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <!--Mybatis end--> <!-- database start --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> </dependency> <!-- database end --> <!--javax inject--> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> </dependency> </dependencies> </project>主要就是Mybatis和spring這一塊,到時編碼的時候再作詳細講解。
Blog-User爲:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>BlogApp</artifactId> <groupId>cn.com</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>Blog-User</artifactId> <packaging>jar</packaging> <name>Blog-User</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>cn.com</groupId> <artifactId>Blog-Core</artifactId> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>Blog-User主要就是service層的編寫,東西很少,等到往後再來編寫的時候再添加。
Blog-Web:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <artifactId>BlogApp</artifactId> <groupId>cn.com</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>cn.com</groupId> <artifactId>Blog-Web</artifactId> <packaging>war</packaging> <name>Blog-Web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>cn.com</groupId> <artifactId>Blog-User</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> </dependencies> <build> <finalName>Blog-Web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <port>9090</port> <path>/Blog</path> <uriEncoding>UTF-8</uriEncoding> <finalName>Blog</finalName> <server>tomcat7</server> </configuration> </plugin> </plugins> </build> </project>Blog-Web的主要依賴爲springmvc與tomcat插件,到時具體依賴再來一個個添加。
Blog-Common暫時先不展現pom,這個等到往後用時,再來一個個添加與講解。
Blog環境的初步搭建,以及最初使用的pom依賴,先展現在這裏,等到下次編寫博客的時候,再來描述其餘,以及進行內容的編寫。