【问题标题】:Please Explain spring MVC , hibernate and Spring security请解释spring MVC,hibernate和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...
}
    }

何时以及如何调用此类?

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

提前致谢!

【问题讨论】:

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

标签: java spring hibernate spring-mvc spring-security


【解决方案1】:

第一季度的答案

没有 DAO 接口的编程。

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

但使用 DAO 接口

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

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 2018-04-05
    • 2016-06-13
    • 2016-06-13
    • 2014-11-29
    • 2014-05-09
    • 2014-12-14
    • 2014-03-25
    • 2015-03-11
    相关资源
    最近更新 更多