spring+SpringMVC项目环境搭建
之前总结过spring和SpringMVC知识点,不过还是对这两个的区别和作用有点懵懂,因此,这里再总结一下视频里关于这两个框架例子搭建的前期过程,作为后面复习查看。
1 环境搭建步骤
- 创建工程(Project&Moudle)
- 导入静态页面(jsp页面)
- 导入需要的坐标
- 创建包结构
- 创建或导入数据库表
- 创建POJO类(User.java等实体类)
- 创建配置文件(applicationContext.xml, spring-mvc.xml, jdbc.properties, log4j.properties)
注意:配置文件中applicationContext.xml是spring的配置文件,在这个里面主要是配置一些Bean,比如业务层、Dao层的Bean都让Spring容器去产生。
spring-mvc.xml是SpringMVC的核心配置文件,在这里面可以配置注解驱动、内部视图资源解析器、静态资源访问等等。
jdbc.properties是抽取数据库信息的配置文件,最后一个log4j.properties是关于日志的配置文件。
2 开始
- 创建工程(这里是新建一个Moudle)
首先,右键项目选择New Moudle
- 导入静态页面:略过,这里新建一个index.jsp页面作为演示即可。
- 在pom.xml导入相关坐标
<dependencies>
<!--mysql驱动坐标-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!--c3p0数据源坐标-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--druid数据源坐标-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--junit单元测试坐标-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--spring的坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--spring集成单元测试坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--spring集成web环境坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--springmvc坐标-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--serlvet坐标-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!--serlvet坐标-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
<!--jackson格式转化坐标-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
<!--文件上传坐标-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<!--jstl表达式坐标-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
- 创建包结构
- 导入数据库脚本(略)
- 创建POJO类(略)
- 创建配置文件(applicationContext.xml, spring-mvc.xml, jdbc.properties, log4j.properties)
-
jdbc.properties, log4j.properties直接复制粘贴即可,不用管
-
创建spring配置文件applicationContext.xml和spring-mvc配置文件。
-
配置web.xml文件
关联spring
<!--全局初始化参数-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--1. spring的监听器-->
<listener>
<!--ContextLoaderListener内部加载spring配置文件,创建spring容器-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
关联SpringMVC
<!--springMVC的前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--内部也要加载SpringMVC的配置文件,因此也需要初始化参数-->
<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>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!--/表示所有请求都找SpringMVC,需要在spring-mvc里面进行静态资源的开放-->
<url-pattern>/</url-pattern>
</servlet-mapping>
- 配置spring-mvc文件
<!--1、mvc注解驱动-->
<mvc:annotation-driven/>
<!--2、配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--3、放行静态资源-->
<mvc:default-servlet-handler/>
- 配置applicationContext.xml文件
<!--1. 加载jdbc.properties文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--2. 配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--3. 配置JdbcTemplate对象-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--加载数据源-->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置RoleService-->
<bean id="roleService" class="com.itheima.service.impl.RoleServiceImpl">
<property name="roleDao" ref="roleDao"/>
</bean>
<!--配置RoleDao-->
<bean id="roleDao" class="com.itheima.dao.impl.RoleDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>