Spring3.0读书笔记----(二)快速入门

1 实例功能简介

 

 简单的登录模块。登录页面提供一个带用户名/密码的输入表单,用户填写并提交表单后,服务器程序检查是否有匹配的用户名/密码。如果用户名/密码不匹配,返回到登录页面,并给出提示。如果用户名/匹配,记录用户的成功登录日志,更新用户的最后登录时间和IP并给用户增加5个积分,然后重定向到欢迎页面。


2 环境准备

 

 环境准备包括数据库表的创建(MySQL数据库)、项目工程的创建、规划Spring配置文件。

2.1 创建库表

DROP DATABASE IF EXISTS sampledb;
CREATE DATABASE sampledb DEFAULT CHARACTER SET utf8;
USE sampledb;
-- 创建用户表
CREATE TABLE	t_user(
	user_id INT AUTO_INCREMENT PRIMARY KEY,
	user_name VARCHAR(30),
	credits INT,
	user_password VARCHAR(32),
	last_visit DATETIME,
	last_ip VARCHAR(23)
);
-- 创建用户登录日志表
CREATE TABLE login_log(
	login_log_id INT AUTO_INCREMENT PRIMARY KEY,
	user_id INT,
	ip VARCHAR(23),
	login_datetime DATETIME
);
-- 插入初始化数据
INSERT INTO t_user(user_name,user_password) VALUES('admin','123456');
COMMIT;

2.2 建立工程

 

 以前一直用的MyEclipse,后来据说大牛都是使用Eclipse,可以锻炼动手能力,那么就以Eclipse创建一个maven构建web项目为例。


2.2.1 new一个Maven Project


















  进入maven project页面之后,选择第二栏,点击next




 在Filter中输入maven-archetype-webapp(建立web项目的模型)或者输入maven-archetype-quickstart(非web项目),这两种是比较常用的模型。现在以webapp(web项目为例)。



输入maven项目的基本信息

 Group Id:一般来说groupId是由三个部分组成,每个部分之间以"."分隔,第一部分是项目用途,比如用于商业的就是"com",用于非营利性组织的就是"org";第二部分是公司名,比"tengxun"、"baidu"、"alibaba";第三部分是你的项目名。

 Artifact Id:Maven构建的项目名称或者根目录的名称,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式。

 Version:当前版本

 Package:默认包结构,也可以不填



2.2.2 修改JDK

 eclipse建立maven项目时,新建的项目往往是JDK1.5,项目会报红叉,所以要更改JDK在pom.xml中配置

<build>
    <finalName>springtest</finalName>
    <plugins>
    	<!-- 指定JDK1.7 -->
        <plugin>
        	<groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
            	<source>1.7</source>
            	<target>1.7</target>
            </configuration>
         </plugin>
  	</plugins>
  </build>

 配置完了之后点击项目名,右击选择“Build Path”——》“Configrue BuildPath”出现如图:

 点击”JRE System Library[JavaSE-1-7]”(不能eclipse可能出现的版本不一样),再点击“edit”

 选择“Workspace defaultJRE(jdk1.7.0_79)”然后选择 Finish


2.2.3 把maven项目转换为web项目

 点击项目,右击-》选择Properties-》选择maven下的Project Facets

这里写图片描述

  如果先前Dynamic web Module有打勾,先把勾去掉,Apply-》OK

 重复上一步可以看到Dynamic web Module上没有打上勾,打勾,后出现 Furtherconfiguration available

 点击Further configuration available,出现Modify web modulssettings,在Content directory上填入src/main/webapp ,并在Generate web.xml deploymentdescriptor上打勾-》OK-》Apply-》OK

 最后的结果

这里写图片描述

2.2.3 规划Spring文件及配置

在pom.xml中引入依赖项,包括spring核心类库和测试框架,使用Spring-jdbc连接数据库

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
  		<groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
  		<version>5.1.38</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-aop</artifactId>
  		<version>3.2.7.RELEASE</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-context</artifactId>
  		<version>3.2.7.RELEASE</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-core</artifactId>
  		<version>3.2.7.RELEASE</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-jdbc</artifactId>
  		<version>3.2.7.RELEASE</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-tx</artifactId>
  		<version>3.2.7.RELEASE</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-webmvc</artifactId>
  		<version>3.2.7.RELEASE</version>
  	</dependency>
  	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-test</artifactId>
    	<version>3.0.5.RELEASE</version>
    	<scope>test</scope>
	</dependency>
	<dependency>
  		<groupId>jstl</groupId>
  		<artifactId>jstl</artifactId>
  		<version>1.2</version>
  	</dependency>
  </dependencies>

 在Maven项目src/main/resources目录下创建applicationContext.xml的Spring配置文件,配置结果如下:

<!-- 1.扫描类包,将标注Spring注解的类自动转为Bean,同时完成Bean的注入 -->
	<context:component-scan base-package="com.baobao.springtest.dao"/>
	<!-- 2.定义一个使用DBCP实现的数据源 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost:3306/sampledb"/>
		<property name="username" value="root"/>
		<property name="password" value="123456"/>
	</bean>
	<!-- 3.定义jdbc模板Bean -->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	<!-- 4.扫描service类包,应用Spring的注解配置 -->
	<context:component-scan base-package="com.baobao.springtest.service"/>
	<!-- 5.配置事务管理器 --> 
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	
	<!-- 6.通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 -->
	  <!--  
	<aop:config proxy-target-class="true">
		<aop:pointcut expression="execution(*com.baobao.springtest.service..*(..))" id="serviceMethod"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/>
	</aop:config>
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*"/>
		</tx:attributes>
	</tx:advice>
	-->
 然后对web,xml文件进行配置,使得web容器能够自动启动Spring容器:

<!-- 1.从类路径下加载Spring配置文件,-->
  	<context-param>
  		<param-name>contextConfigLocation</param-name>
  		<!-- classpath关键字特指类路径下加载 ,多个文件可以用逗号和空格分割,建议使用逗号 -->
  		<param-value>classpath:applicationContext.xml</param-value>
  	</context-param>
  	<!-- 2.负责启动Spring容器的监听器,它将引用1处上下文参数获得Spring配置文件地址 -->
  	<listener>
  		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  	</listener>
  	<!-- 3.SpringMVC的主控Servlet -->
  	<servlet>
  		<servlet-name>baobao</servlet-name>
  		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  		<load-on-startup>1</load-on-startup>
  	</servlet>
  	<!-- 4.SpringMVC处理的URL -->
  	<servlet-mapping>
  		<servlet-name>baobao</servlet-name>
  		<url-pattern>/</url-pattern>
  	</servlet-mapping>
 接下来配置SpringMVC的文件相关信息,该文件名与定义的servlet名有一个契约:

即采用<servlet 名>-servlet.xml的形式,并将文件放在WEB-INF下,这样可以无需再

 通过web.xml的contextConfigLocation上下文参数进行声明。因为SpringMVC的servlet

会自动将该文件或者Spring其他的配置文件(-dao.xml、-service.xml等)进行拼装。

 配置后效果使所有请求被SpringMVC截获后,首先根据请求的URL查找目标的处理控

制器,并将请求参数封装“命令”对象一起传给控制器处理,控制器调用Spring容器中的业

务Bean完成业务处理工作并返回结果视图。以下是配置信息:

<!-- 扫描web包,应用Spring的注解 -->
	<context:component-scan base-package="com.baobao.springtest.web"/>
	<!-- 配置视图解析器,将ModelAndView及字符串解析为具体的页面 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- prefix指定在视图名前所添加的前缀 -->
		<property name="prefix" value="/WEB-INF/"/>
		<!-- suffix指定在视图名后所添加的后缀 -->
		<property name="suffix" value=".jsp"></property>
	</bean>
 3 总结

通过一个简单的实例运用SpringMVC、SpringJDBC以及Spring的声明式事务技术熟悉

Maven项目下搭建Spring的容器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值