请解释spring MVC,hibernate和Spring security

Posted

技术标签:

【中文标题】请解释spring MVC,hibernate和Spring security【英文标题】:Please Explain spring MVC , hibernate and Spring security 【发布时间】:2017-01-03 23:44:24 【问题描述】:

在很多指南的帮助下,我刚刚使用 Spring 安全性和休眠创建了我的第一个登录页面。

我遇到的问题主要是指南没有很详尽的解释,所以我希望我能通过你们得到一些答案。

问题 1: 为什么我们要为例如 UserDao 创建接口类?我知道这个接口的目的是访问某种数据库。但由于我的 UserDao 只包含:

public interface UserDao 

User findByUserName(String userName);

boolean insertUser(User user);


我不能只创建一个类吗?

问题 2:

当我跑步时,幕后实际发生了什么:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception   
    auth.userDetailsService(userDetailsService);

问题 3:

@Service
@Transactional
public class UserDetailsServiceImpl implements UserDetailsService 

@Autowired
private UserDao userDao;

@Override
public UserDetails loadUserByUsername(String userName) throws  
UsernameNotFoundException 
code...

    

何时以及如何调用此类?

我已经阅读了大部分文档,但仍然不明白。

提前致谢!

【问题讨论】:

你研究过文档吗?您的问题对于本网站来说太宽泛了,因为一个全面的答案会太长并且只是复制文档。 是的,如前所述,我已经阅读了文档并没有理解所写的内容,而且我很确定前两个问题不是那么广泛。我并不是真的要求重复,我要求的是从不同的角度进行解释。 【参考方案1】:

第一季度的答案

没有 DAO 接口的编程。

假设您是一个庞大系统中的程序员,负责根据新需求添加组件。 从一开始,您的系统就可以与 mysql 一起使用。 由于一项新要求,您的项目经理要求您实施对 Oracle 的支持。 (当需要数据库支持时,应在 MySQL 和 Oracle 之间切换) MySQL 查询和 Oracle 查询不同。 您的系统未使用 hibernate 等 ORM 框架实现。 特别是没有 DAO 接口。所有都是与数据库通信的具体类。 现在您将使用包括与 Oracle 相关的查询在内的方法来实现 java 类。 你有麻烦了, 你的系统很大 包含复杂的业务逻辑 如果不检查服务层代码或文档,您将无法 知道(您不能更改服务层代码。) 我应该使用哪些名称实现哪些类/方法。 方法的输入参数应该是什么。 应该输出什么。 当然这需要几个月的时间,具体取决于系统的复杂性。 (缩短时间是软件项目的一个关键点)

但使用 DAO 接口

您只需考虑 Oracle 特定的查询,因为 您只需实现 DAO 接口 自动 dao 接口让您保持在正轨 使用正确的方法名称 使用正确的输入参数 使用正确的返回变量 如果你出轨,编译会失败。 您可以通过 bean 注入轻松插入 oracle 或 mysql 支持

【讨论】:

以上是关于请解释spring MVC,hibernate和Spring security的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate - Spring Security - Spring MVC 版本

Spring 框架 MVC - Hibernate 异常是 java.lang.NoSuchMethodError

Spring MVC 和 Hibernate 使用 Junit 测试 DAO 层和 Service 层的步骤

我们如何使用hibernate作为orm单独的数据库和模式来构建一个spring mvc多租户应用程序

spring mvc 与Struts的认识

通用后台管理系统(ExtJS 4.2 + Spring MVC 3.2 + Hibernate)