所謂聚合項目,實際上就是對項目分模塊,互聯網項目通常來講按照業務分(訂單模塊、VIP模塊、支付模塊、CMS模塊…),傳統的軟件項目,大多采用分層的方式(Dao、Serivce、Controller):css
bobo-parent pom 管理 |-- bobo-manager pom 管理 |-- bobo-manager-dao jar |-- bobo-manager-service jar |-- bobo-manager-model jar |-- bobo-manager-commons jar |-- bobo-manager-controller war
pom文件不須要寫代碼,只是起管理做用 html
建立bobo-manager項目 java
.分別建立四個jar項目
相同的步驟建立其餘3個jar項目
mysql
<dependencies> <!-- 由於是web項目因此須要servlet --> <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <!-- tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 端口號 --> <port>8082</port> <!-- /表示訪問路徑 省略項目名 --> <path>/</path> <!-- 設置編碼方式 --> <uriEncoding>utf-8</uriEncoding> </configuration> </plugin> </plugins> </build>
<!-- 配置依賴的service座標 --> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
<!-- 配置依賴的Dao座標 --> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-dao</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
同時controller也會依賴dao,間接依賴web
<dependencies> <!-- 配置依賴的model和Commons的座標 --> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-model</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-commons</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
<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"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.dpb</groupId> <artifactId>bobo-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <properties> <spirng.version>4.3.3.RELEASE</spirng.version> </properties> <artifactId>bobo-manager-dao</artifactId> <dependencies> <!-- 配置依賴的model和Commons的座標 --> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-model</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-commons</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spirng.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spirng.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spirng.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spirng.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27</version> </dependency> </dependencies> </project>
在controller中引入springmvc spring
<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"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.dpb</groupId> <artifactId>bobo-manager</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>bobo-manager-controller</artifactId> <packaging>war</packaging> <properties> <spirng.version>4.3.3.RELEASE</spirng.version> </properties> <dependencies> <!-- 由於是web項目因此須要servlet --> <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <!-- 配置依賴的service座標 --> <dependency> <groupId>com.dpb</groupId> <artifactId>bobo-manager-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- 2.和springMvc相關的jar包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spirng.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/jstl/jstl --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.2</version> </dependency> </dependencies> <build> <plugins> <!-- tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 端口號 --> <port>8083</port> <!-- /表示訪問路徑 省略項目名 --> <path>/</path> <!-- 設置編碼方式 --> <uriEncoding>utf-8</uriEncoding> </configuration> </plugin> </plugins> </build> </project>
spring配置文件sql
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <context:component-scan base-package="com.sxt.dao.impl,com.sxt.service.impl" use-default-filters="true"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource"> <!-- 配置數據庫的相關信息 --> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/pms?characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> <bean class="org.springframework.jdbc.core.JdbcTemplate" id="template"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
springmvc的配置文件數據庫
<?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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 開啓SpringMVC註解的方式 --> <mvc:annotation-driven > </mvc:annotation-driven> <!-- 開啓掃描 --> <context:component-scan base-package="com.sxt.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> </beans>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>SpringMVC-01-hello</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:Spring-MVC.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> </web-app>
package com.sxt.bean; public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + "]"; } }
package com.sxt.dao; import java.util.List; import com.sxt.bean.User; public interface UserDao { public List<User> query(); }
package com.sxt.dao.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import com.sxt.bean.User; import com.sxt.dao.UserDao; @Repository public class UserDaoImpl implements UserDao{ @Resource private JdbcTemplate template; public List<User> query() { String Sql="select * from t_user"; return template.query(Sql, new BeanPropertyRowMapper(User.class)); } }
package com.sxt.service; import java.util.List; import com.sxt.bean.User; public interface UserService { public List<User> query(); }
package com.sxt.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.sxt.bean.User; import com.sxt.dao.UserDao; import com.sxt.service.UserService; @Service public class UserServiceImpl implements UserService{ @Resource private UserDao dao; @Override public List<User> query() { return dao.query(); } }
package com.sxt.controller; import java.util.List; import javax.annotation.Resource; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.sxt.bean.User; import com.sxt.service.UserService; @RestController public class UserController { @Resource private UserService userService; @RequestMapping("/query") public List<User> query(){ return userService.query(); } }
對bobo-manager打包 而後啓動 bobo-manager-controller項目
express