Spring 4.x 学习 第二章
发布日期:2022-02-26 14:49:27
浏览次数:29
分类:技术文章
本文共 1186 字,大约阅读时间需要 3 分钟。
快速入门
论坛登录模块实例
Spring 拥有持久层、业务层和展现层的“原生技术”,分别是Spring JDBC、声明式事务和Spring MVC 实例功能简介 首先登陆页面提供一个带用户名/密码的输入表单,用户填写并提交表单后,服务器端程序检查是否有匹配的用户名/密码。如果用户名/密码不匹配,则返回登录页面,并给出提示;如果用户名/密码匹配,则记录用户的成功登录日子,更新用户的最后登录时间和ip,并给用户增加5个积分,然后重定向到欢迎页面。如图: 在持久层拥有两个DAO类,分别是UserDao和LoginLogDao,在业务层对应一个业务类UerService,在展现层拥有一个LoginController类和两个JSP页面,分别是登录页面login.jsp和欢迎页面main.jsp 持久层 持久层负责数据的访问和操作,DAO类被上层的业务类调用。持久层的主要工作就是从数据库表种加载数据并实例化领域对象(实体类),或将领域对象(实体类)持久化到数据库表中。 这里用@Respository定义一个DaoBean,使用@AutoWired将Spring容器中的Bean注入进来(关于Spring的注解配置,将在第四章详细讲述) 在Spring中装配DAO 在resources文件夹中创建smart-context.xml的Spring配置文件,文件结构如下 在文件中配置以下信息 在1处,我们使用Spring的扫描指定类包下的所有类,这样在类中定义的Spring注解(@Repository、@Autowired等)才能产生作用。 在2处,我们使用Jakarta的DBCP开源数据源实现方案定义了一个数据源,数据库驱动器类为com.mysql.jdbc.Driver. 在3处配置了JdbcTemplateBean,将2处声明的dataSource注入JdbcTemplate中,二这个JdbcTemplate Bean 将通过@Auto wired自动注入LoginLog和UserDao的Bean中,可见Spring可以很好地将注解配置和Xml配置统一起来。 业务层 在实例中业务层仅有一个业务类,即UserService,负责将持久层的UserDao和LoginDao组织起来,完成用户/密码认证、登录日志记录等操作。 首先1处通过@Service注解将UserService标注为一个服务层的Bean 然后在2和3处注入userDao和loginLogDao 这两个Dao层的Bean 最后在4处为loginSucess()方法标注@Transactional事务注解,让方法运行在事务环境中(因为我们在Spring事务管理器拦截切入表达式上加入了@Transactional过滤),否则该方法将在无事务方法中运行 在Spring中装配Service转载地址:https://blog.csdn.net/qq_31295719/article/details/82115706 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月29日 05时10分12秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
判断无向连通图是二分图的方法(黑白染色法)
2019-04-30
读取字符数组、字符串中的空格
2019-04-30
二分图的最大匹配(匈牙利算法)
2019-04-30
Bellman - Ford算法
2019-04-30
SPFA算法-邻接表存图
2019-04-30
Python之turtle.circle()函数理解
2019-04-30
Python绘制奥运五环
2019-04-30
使用0x3f3f3f3f而不是0x7fffffff表示无穷大
2019-04-30
树状数组之改段求点(修改自codevs 1081)
2019-04-30
树状数组之改点求段(区间和)
2019-04-30
树状数组之改段求段(hdu 4970)
2019-04-30
线段树应用(建树、区间查询之最大值)
2019-04-30
线段树应用(建树、区间查询之最小值)
2019-04-30
线段树应用(建树、查询任意区间元素个数)
2019-04-30
线段树应用(建树、单点更新、区间求和)
2019-04-30
线段树应用(建树、区间更新及懒标记、区间查询)
2019-04-30
ST算法(Sparse Table,稀疏表)简介
2019-04-30
并查集
2019-04-30
Python中readlines()函数的hint参数解读
2019-04-30
主席树(POJ-2104、HDU-2665)
2021-07-03