接上篇—用spring注入DBbean,并使用maven管理
接着上篇的登陆功能,用spring的依赖注入和maven的管理,又实现了一遍。新增了注册功能。
有两个目标:使用spring和使用maven
目录结构

首先是目标1:使用spring的依赖注入,注入bean,LoginServlet不再自己创建DBdao对象。
LoginServlet.java
import java.io.IOException;
import java.io.PrintStream;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import dao.DBdao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet{
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintStream out = new PrintStream(response.getOutputStream());
String name = request.getParameter("userName");
String password = request.getParameter("password");
Connection conn = null;
Statement statement = null;
String sql = "select * from user where username="+"'"+name+"'";
/*********************************/
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"spring-config.xml"});
DBdao db = (DBdao)context.getBean("DBdao",DBdao.class);
/*********************************/
try{
//获得数据库连接
conn = db.getConnection();
statement = conn.createStatement();
//执行sql查询,并返回结果集对象
ResultSet rs = statement.executeQuery(sql);
if(rs.next()){
if(rs.getString("password").equals(password)){
out.print("<h1>success</h1>");
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
要点在这两句:
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"spring-config.xml"});
DBdao db = (DBdao)context.getBean("DBdao",DBdao.class);
- ApplicationContext是一个接口,ClassPathXmlApplicationContext实现了该接口,然后从类加载路径加载配置文件
- 调用ApplicationContext控制反转容器的getBean方法,由容器通过xml配置文件创建对象传给LoginServlet(需要强制类型转换)。
spring-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="DBdao" class="dao.DBdao"/>
</beans>
然后只需要这样,就能使用Spring的依赖注入了。
然后是目标2:使用maven。
很好用。第一次用 [照着这](http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html) ,5分钟完成。
在这,我的理解是maven联网从自己的资源中心下载所有需要的jar包,包括maven需要的和项目需要的,自己无需再去官网下载spring,struts啥的jar了。
然后是pom.xml文件,是maven的本项目配置文件,放在根目录下
pom.xml
<?xm version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2002/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>
<groupId>geng.test</groupId>
<artifactId>geng.test</artifactId>
<version>0.1.0</version>
<build>
<finalName>wang</finalName>
<plugins>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
</project>
在dependecy中填项目需要的依赖
- <modelVersion>标签填4.0
- <finalName>标签填项目的名字
- 最后在根目录下使用mvn package war:war命令就会自动生成war打包文件
- 把war放到tomcat的webapp下就可以访问项目了
maven下载的jar都会存在用户目录下的.m2文件夹中,因此这个文件夹可能会很大
项目的文件树必须是固定的,只能在src下的project或com下写源文件,resources下写配置文件,资源文件,webapp下写web.xml和jsp
maven在windows下的安装 (https://www.cnblogs.com/happyday56/p/8968328.html)
manen在linux下的安装,下载二进制包,解压,配置path环境变量,引入maven中的bin文件,就能使用了
接上篇—用spring注入DBbean,并使用maven管理的更多相关文章
- Spring入门(四):使用Maven管理Spring项目
让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要 ...
- Mybatis与Spring整合,使用了maven管理项目,作为初学者觉得不错,转载下来
转载自:http://www.cnblogs.com/xdp-gacl/p/4271627.html 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype ...
- spring注入bean的几种策略模式
上篇文章Spring IOC的核心机制:实例化与注入我们提到在有多个实现类的情况下,spring是如何选择特定的bean将其注入到代码片段中,我们讨论了按照名称注入和使用@Qualifier 注解输入 ...
- Spring注入JPA+JPA事务管理
本例实现的是Spring注入JPA 和 使用JPA事务管理.JPA是sun公司开发的一项新的规范标准.在本质上来说,JPA可以看作是Hibernate的一个子集:然而从功能上来说,Hibernate是 ...
- Spring注入中byType和byName的总结
1.首先,区分清楚什么是byType,什么是byName. <bean id="userServiceImpl" class="cn.com.bochy.servi ...
- spring注入参数详解
spring注入参数详解 在Spring配置文件中, 用户不但可以将String, int等字面值注入到Bean中, 还可以将集合, Map等类型的数据注入到Bean中, 此外还可以注入配置文件中定义 ...
- 线程中无法实例化spring注入的服务的解决办法
问题描述 在Java Web应用中采用多线程处理数据,发现Spring注入的服务一直报NullPointerException.使用注解式的声明@Resource和XML配置的bean声明,都报空指针 ...
- FlushMode属性与transaction(spring注入的事务)
一.参见hibernate的api http://tool.oschina.net/apidocs/apidoc?api=hibernate-3.6.10 http://tool.oschina.ne ...
- 项目中Spring注入报错小结
之前在做单元测试时采用注解方式进行service对象的注入,但运行测试用例时对象要注入的service对象总是空的,检查下spring配置文件,我要配置的bean类xml文件已经包含到spring要加 ...
随机推荐
- clickonce发布winform必备组件
ClickOnce 发布,在系统必备中勾选了 .NET Framework 4,并选择了"从与我的应用程序相同的位置下载系统必备组件"时,执行发布,会提示缺少很多文件 使用 Pac ...
- 9.29学习的js基础
js基础 1.三种js引入方式 a).<input type="button" value="点击事件" onClick="documen ...
- top命令查看进程列表
top命令查看进程列表 top命令是linux下常用的性能分析工具,能实时显示系统中各个进程的资源占用状况.和win的资源管理器类似.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态,如 ...
- 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
Altera SOPC嵌入式系统设计教程 第1章 概述 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活.高效的SOC解决方案.它 ...
- DRBD 数据镜像软件
1>DRBD介绍 1>数据镜像软件DRBD介绍 分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络的块复制存储解 ...
- Gulp资料大全:入门、插件、脚手架、包清单
awesome-gulp中文版 一份gulp的资源,插件和使用实例清单, 致力于打造更好的前端工程构建流程. 被老外的awesome 清单刺激到,觉得有必要翻译一份,为国产的程序员们做点事情,本清单将 ...
- 2014-3tomcat遇到的问题汇总
tomcat启动不起来 端口占用:加了apache的ajp,所以要打开ajp_port,结果被占用了. 权限不够:chown:各个文件的权限都不够,特别是日志文件的. 配置问题:应用 servlet- ...
- sonar安装问题记录
1.启动时日志中提示 Caused by: java.lang.RuntimeException: can not run elasticsearch as root 错误原因:因为安全问题elast ...
- Djangorestframework编写post接口
前提:已经有Django环境 一.安装 pip install djangorestframework 二.编写视图 import json from django.shortcuts import ...
- RobotFramework做接口自动化(post请求)
接口成功时返回: { "reCorde": "SUCCESS", "data": { ", "verify": ...