最近有必定时间,决定继续个人博客之旅,这一次,准备作一个博客,并将此开源。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依赖,先展现在这里,等到下次编写博客的时候,再来描述其余,以及进行内容的编写。