码迷,mamicode.com
首页 > 编程语言 > 详细

spring的用法

时间:2018-01-10 21:29:44      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:信息   message   span   autowire   fun   配置   getc   hashmap   游戏   

 

 

一:建立mysql数据库

技术分享图片

create database student default chracter set uttf8;

技术分享图片

二:建表(手动写SQL)

技术分享图片

三: 插入三条测试

insert into user(user_name,sex,age) values(‘小红‘,1,16);

insert into user(user_name,sex,age) values(‘小明‘,0,20);

insert into user(user_name,sex,age) values(‘小军‘,1,13);

技术分享图片

四:        创建新的项目(到时直接导入war)

【参考之前的idea_maven的结合使用】

五、   建立4个目录action,service,dao,entity

技术分享图片

六 : 配置maven

技术分享图片

技术分享图片

对web的支持

技术分享图片

技术分享图片

对hibernate的支持

技术分享图片

struts 与 Spring结合的插件

技术分享图片

Spring 与 Hibernate 结合的插件

技术分享图片

数据库连接池C3P0

 技术分享图片

技术分享图片

检查驱动是否正常

技术分享图片

 

七 :            配置web.xml

  熟悉web.xml所在的目录结构,代码中webappàWEB-INF中的一个文件

技术分享图片

技术分享图片

配置struts的2个过滤器(3年前的struts是1个过滤器)

技术分享图片

配置spring的监听器

技术分享图片

八、              配置一个struts.xml

  1. 用idea创建struts.xml文件,文件要保存到resources
  2. 技术分享图片
  3. 技术分享图片
    1. 配置所有的action实例,由spring的容器创建

技术分享图片

 

九   :

三、              配置Spring容器的配置文件applicationContext.xml

技术分享图片

 

技术分享图片

1、  增加context和tx的支持

技术分享图片

1、  此项目中,我们期待自己写的类使用注解,而不是<bean>,增加自动扫描包配置

 

 技术分享图片

  1. 配置数据连接池(本项目中使用的是C3P0,如果速度不够快,可以选DBCP)

编写一个DataSource的<bean>,注意里面的${driverClass}等变量来自于上一步的jdbc.properties文件

技术分享图片

技术分享图片

技术分享图片

 

以上:所有的环境搭配,(struts2+hibernate5+spring5)已经完成,剩下的全是编码了。

导出一个war包,平时或者考试时,可以直接导入war到eclipse使用

 

后端代码:

一、              实体类

在entity建立一个实体类User

a.在类的前面写上@Entity,@Table

b.根据表结构,编写各个属性,然后填写get/set

c.在主键(id)前面加上

@Id

@GeneratedValue(strategy= GenerationType.IDENTITY)

最好加上@Column(name="id")

d.其它字段加@ Column() 即可

e.对私有字段增加@Transient

 

二、              写Dao层,进行各种数据库的操作

1、  先写Dao接口UserDao

本例中设计一个方法getAllUser(),返回类型为:List<User>

2、  编写实现类UserDaoImpl

a、  implements UserDao

b、  添加未实现的方法getAllUser()

c、  添加注解@Repository和@Scope("prototype")

d、  添加一个SessionFactory的属性,未保证实例不为null,添加@Autowired

e、  编写具体数据库操作代码,生成一个session,然后调用具体api,注意不需要编写任何的事务代码(属于横切关注点的,交给Spring完成)

三、              写Service层,进行各种业务逻辑的操作(绝对不包含任何数据库代码)

1、  先写Service接口UserService

本例子中设计一个方法getAllUser(),返回类型为:List<User>

2、  编写实现类UserServiceImpl

a、  implements UserService

b、  添加未实现的方法getAllUser()

c、  对此方法添加一个注解:@Transactional

(因为此方法会调用Dao层,目的让Dao可以被Spring实现事务支持)

d、  对本类添加@Service 和@Scope("prototype")

e、  由于需要引用Dao的支持,所以添加一个Dao的属性,未保证实例不为null,添加@Autowired

f、   在getAllUser()中调用Dao层获取相关数据

g、  根据业务逻辑需要,假如有业务逻辑,先编写游戏规则

h、  返回结果

四、              编写Action层

1、  编写实现类UserAction(本质上是Struts的Action接口的实现类)

2、  写上注解@Controller和@Scope("prototype")

3、  编写方法showAllUser(),注意返回类型为String

4、  由于需要调用service层的东西,添加一个Service的属性,并且为了防止为,加入@Autowired

5、  调用service获取相关的数据(从数据库来的,以及经过service包装)

6、  把结果传递给前端的jsp页面

ActionContext.getContext().getValueStack().set();

7、  return this.SUCCESS;

8、  编写strtus.xml文件,配置返回结果与jsp的关系

  1. 编写package的节点
  2. 在package节点内,编写action节点

对应上name  class method的属性值

  1. 在action节点内,编写result,指定对应的jsp页面

 

前端代码:

编写jsp文件

1、  引入

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

2、  使用相关<c:forEach>以及el表达式,进行数据的显示

3、  编写index.jsp,跳转到具体action去。

 

 

 

要求3单独一个功能写

一、              后端

提供一个json

比如:

获奖 {status:1,message:’获奖’,data:true}

没获奖 {status:1,message:’没获奖’,data:false}

服务器异常{status:0,message:’服务器异常’,data:null}

1、  前置任务,修改strtus.xml文件要配置

把action的名字,method等改为通配符的方式

同时增加<allowed-methods>showAllUser ,isWin</allowed-methods>

index.jsp修改一下跳转地址

 

1、  在原来的UserAction中增加一个方法:isWin

2、  增加多id用于获取前端传递的用户id

private Integer id;以及对应get/set

3、  在DAO层增加一个getUser(Integer id)方法,返回值:User

a.在接口UserDao增加一个方法:
     public User getUser(Integer id);
b.在实现类UserDaoImpl,实现此方法
4、在Service层增加isWin(Integer id),返回:boolean是否获奖
   a.在接口UserService中增加一个方法。
public boolean isWin(Integer id);
   b.在实现类实现isWin方法,并且编写相关的游戏规则的代码
   c.由于调用了Dao中,所以在isWin前面加一个@Transactional
5、在Action调用service
   a.定义一个Map属性,用来存放json的内容
private Map<String,Object> jsonMap;(增加get/set)
   b.在isWin中初始化Map
jsonMap = new HashMap<String, Object>();
c.根据service返回的结果,对Map提供status,message,data等信息
   d.在struts.xml中对应的action节点,
增加一个result type= "json"
<result type="json" name="jsonOK">
    <param name="root">jsonMap</param>
</result>
e、在package中extends中,增加一个
json-default
<package name="myPackage" extends="struts-default,json-default">
f、增加一个包Struts 2 JSON Plugin的Maven依赖
解决错误:Parent package is not defined: json-default

 

二、              前端

使用jQuery的.ajax方法调用后端的API

例如API:http://localhost:8080/userAction_isWin.action?id=1

1、  拷贝jQuery文件到webapp/js/目录下

2、  编辑ok.jsp

<script type="text/javascript" src="/js/jquery-3.2.1.min.js"></script>

3、ajax的应用就不详细描述

 

 

 

 

  

 

spring的用法

标签:信息   message   span   autowire   fun   配置   getc   hashmap   游戏   

原文地址:https://www.cnblogs.com/ygs520/p/8260630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!