Spring系列框架系统复习(一)SpringMVC框架搭建(maven、druid、mybatis\hibernate)
1、新建一个maven项目
具体配置选项不懂参考百度,一搜一大堆,主要有以下几点注意

选择webapp模板

从上图可以看出goupId+ArtifactId=packageName(包结构)
2、选择自己想要的运行环境,这里使用的是1.8jdk.
一般直接修改maven的setting.xml文件
<profile>
<id>jdk1.8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
这个配置的前提是你系统已经装好了jdk1.8的环境,并且设置好了路径。
或者是修改项目中的pom文件,加入
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
这种配置的话只对本项目生效,对其他项目不起作用。
好了配置完成,这样每次maven-update之后会根据配置文件为该项目选择jre环境。
咱们继续,添加相应的jar包
<properties>
<spring.version>4.2.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</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-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
3、添加Web.xml配置文件中关于SpringMVC的配置
<!--configure the setting of springmvcDispatcherServlet and configure the mapping-->
<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>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
<!-- 路径过滤 -->
</servlet-mapping>
classpath:/spring-mvc.xml指明了springMVC配置文件的路径以及名称。以下是配置文件spring-mvc.xml内容:
<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/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.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!-- scan the package and the sub package --> <context:component-scan base-package="demo"/> <!-- don't handle the static resource --> <mvc:default-servlet-handler /> <!-- if you use annotation you must configure following setting --> <mvc:annotation-driven /> <!-- configure the InternalResourceViewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/view/" /> <!-- 后缀 --> <property name="suffix" value=".jsp" /> </bean> </beans>
context:component如注释,自动扫描的包名多个地址用逗号隔开,在该范围内的注释将会被解析,映射也能找到相应的路径等。
annotation-driven默认的注解映射的支持
prefix视图解释路径前缀,这里/默认是webapp的根路径,根据实际路径做相应配置
suffix视图解释类后缀,建议为空,在controller返回时加上类后缀即可,这样使用比较灵活
4、剩下的工作就是创建一个controller类做业务逻辑的处理了,在此不再多说。
至此根据自己的配置路径做访问,如http://localhost:8080/demo/test/hello.demo即可访问
/WEB-INF/view/index.jsp


5、好了咱们继续。上面已经搭建好了一个简单springMVC框架,现在咱们向里面加点东西,数据库集成,这里使用阿里的druid连接池插件。
第一步:加入maven依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
第二步:新建一个db.properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver db.url=jdbc:mysql://127.0.0.1:3306/suoha?useSSL=false&serverTimezone=GMT%2B8 db.username=root db.password=****** db.initialSize=0 db.maxActive=100 db.minIdle=0 db.connectionProperties=druid.stat.slowSqlMillis=2000
第三步:在spring启动时注入该配置文件(IOC)
如果对Springioc不太理解的可以参考此文,写的非常详细,值得借鉴:https://www.cnblogs.com/wuchanming/p/5426746.html
<bean id="dataSource" name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 数据库连接基础信息 --> <property name="url" value="${db.url}" /> <property name="username" value="${db.username}" /> <property name="password" value="${db.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${db.initialSize}" /> <!-- 连接池最大使用连接数量 --> <property name="maxActive" value="${db.maxActive}" /> <!-- 连接池最小空闲 --> <property name="minIdle" value="${db.minIdle}" /> </bean>
第四步:使用autowired注入dataSource实例。注意使用该功能时必须在spring-mvc.xml中加入下面这句话:
<!-- if you use @autowired annotation you must configure following setting -->
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
@RequestMapping("/druid") public ModelAndView testDruid() throws SQLException { Connection conn = dataSource.getConnection(); conn.setAutoCommit(false); PreparedStatement pstat = conn.prepareStatement("insert into user values(?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS); pstat.setString(1, "testDruid"); pstat.setString(2, "123123"); pstat.setString(3, "1"); pstat.setString(4, "1"); pstat.setString(5, "2018-09-11"); pstat.setString(6, "2018-09-11"); pstat.executeUpdate(); Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery("select * from user"); conn.commit(); ModelAndView modelAndView = new ModelAndView(); while (rs.next()) { modelAndView.getModelMap().put("username", rs.getString("username")); modelAndView.getModelMap().put("password", rs.getString("password")); } return modelAndView; }
第五步:浏览器输入http://localhost:8080/demo/test/druid.demo,成功调用该请求并在数据库中插入一条user数据。
同时druid插件还有很多强大的功能:监控数据库访问性能(web监控页面)、数据库密码加密(passwordcallback)、SQL执行日志、扩展JDBC等。
6、hibernate/mybatis(jdbc)的整合
浙公网安备 33010602011771号