spring框架的引入

spring框架给程序开发带来了春天,在很多项目里,可能不用struts,不用hibernate,但往往都有spring。

why?

因为每个项目都会涉及到对象的创建和对象之间的依赖。


一、传统的MVC开发

    mvc的项目框架结构:Entity / dao / service / action

// 1. 实体类
class User{
}

//2. dao
class  UserDao{
   .. 访问db
}

//3. service
class  UserService{
    UserDao userDao = new UserDao();
}

//4. action
class  UserAction{
    UserService userService = new UserService();
    ..
    拿到数据或结果
}

用户访问:
/user.action ---->  Tomcat (服务器创建Action、Service、dao)


二、思考传统的开发方式

    1. 对象创建能否写死?

答:实际项目里,写死会给让代码难以维护。好代码的可维护性很强,而且也不会是越来越累的事。

    2. 对象创建细节

        对象数量
            action  多个   【需要维护成员变量,即有状态,每个用户状态不同】
            service 一个   【不需要维护公共变量,无状态】
            dao     一个   【不需要维护公共变量,无状态】

        创建时间
            action    访问时候创建
            service   启动时候创建
            dao       启动时候创建

    3. 对象的依赖关系

        action 依赖 service
        service依赖 dao

三、传统开发的春天

    spring就是解决上面的问题的,简单来说,就是处理对象的创建的、以及对象的依赖关系!



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java编程作业体会_Java作业的几点总结感想

本次博客主要是总结近几次作业,交流一下自己的感受。本次作业主要是对近几次Java课程的巩固作业,第一次作业主要是一些基础的题目,包括选择循环等一些基本语句,其目的在于掌握java一些基本知识,感受出Java与其他语言有…

基于百度语音识别API的Python语音识别小程序

一、功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能。 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换。 工作示例: 二、软件环境 操作系统&#xff1a…

spring专业术语了解

组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响。 例如:Hibernate框架 / Spring框架 控制反转: In…

java修改ldap用户密码_LDAP 用户更改自己的密码

LDAP中采用了ACL的权限控制。在/etc/openldap/slapd.conf文件中:## See slapd.conf(5) for details on configuration options.# This file should NOT be world readable.#include/etc/openldap/schema/corba.schemainclude/etc/openldap/schema/core.schemainclud…

Spring第三篇【Core模块之对象依赖】

tags: Spring 前言 在Spring的第二篇中主要讲解了Spring Core模块的使用IOC容器创建对象的问题,Spring Core模块主要是解决对象的创建和对象之间的依赖关系,因此本博文主要讲解如何使用IOC容器来解决对象之间的依赖关系! 回顾以前对象依赖 我…

spring框架结构介绍

Spring提供了一站式解决方案: 1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系 2) Spring Web Spring对web模块的支持。 -->可以与struts整合,让struts的action创建交给spring -->spring mvc模式 3…

java通过J2C获取用户名密码_WAS服务器上的J2C别名有什么用途?

这是我LdapTemplate类 公共LdapTemplate getLdapTemplete(字符串ldapID) {WAS服务器上的J2C别名有什么用途?if (ldapID.equalsIgnoreCase(Constants.LDAP1)){if (ldapTemplate1 null){try{PasswordCredential passwordCredential j2cAliasUtility.getAliasDetails…

百度坐标转换API使用

http://api.map.baidu.com/geoconv/v1/?coords121.54759,29.870724&from1&to5&aksGSOaO07WkRHHiCRxxbSQVBn 前提:121.54759,29.870724 是由手机硬件或谷歌地图获取的 错误的方法一: function standard2china(lng,lat){//http://api.map.ba…

Java语言所有异常类均继承自_Java将运行错误分为两类:(__)和(__), 其对应的类均派生自(__)类;...

【单选题】设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )【判断题】构造函数的方法名可以由编程人员任意命名。【单选题】能够实现对原文的鉴别和不可否认性的认证技术是( )。【单选题】设有定义语句int a[]{66,88,99}; 则以下对此语句的叙述错误的是( )。【判断…

Quartz业务类无法注入Spring对象问题

tags: 解决错误, titile: Quartz业务类无法注入Spring对象问题 Quartz业务类无法注入Spring对象问题 在刚开始遇到的时候还以为是Spring配置哪里错误了,结果搞了那么久,才知道Quartz与Spring注入对象是不关联的。。 因为Quartz的业务Job对象是由Quartz来…

如何解决ajax跨域问题

原文:http://www.congmo.net/blog/2012/06/27/ajax-cross-domain/ 跨域问题 起 因是这样的,为了复用,减少重复开发,单独开发了一个用户权限管理系统,共其他系统获取认证与授权信息,暂且称之为A系统&#xf…

spring bean创建细节

1) 对象创建: 单例/多例 scope"singleton", 默认值,即默认是单例【service/dao/工具类】 scope"prototype", 多例;【Action对象】 2) 什么时候创建? scope"prototype" 在用到对象的时候&#xff0c…

发送邮件程序报错454 Authentication failed以及POP3和SMTP简介

一、发现问题 在测试邮件发送程序的时候,发送给自己的QQ邮箱,程序报错454 Authentication failed, please open smtp flag first。 二、解决问题 进入QQ邮箱——>设置——>账户——>POP3/IMAP/SMTP选择——>开启POP3/SMTP服务。 三、POP3和S…

MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...

什么是数据库?数据库(Database):存储数据的仓库高效地存储和处理数据的介质(介质主要是两种:磁盘和内存)数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关联起来的称呼DBS DBMS DBDBMS&…

WPF 使用MahApps.Metro UI库

http://www.cnblogs.com/happyyftk/p/6904766.html 本文示例源码下载:MetroWPF 官方示例地址:http://mahapps.com/guides/quick-start.html 官方控件示例地址:http://mahapps.com/controls/ MahApps.Metro 项目源码:https://githu…

SpringIOC容器-创建对象

SpringIOC容器,是spring核心内容。功能:创建对象,处理对象的依赖关系 IOC容器创建对象: 创建对象, 有几种方式: 1) 调用无参数构造器 2) 带参数构造器 3) 工厂创建对象 工厂类&…

java注释搞笑图案_搞笑的代码注释,那些有趣的程序员

发表于 2019-04-24 16:11:26 by 月小升搞笑/**** .::::.* .::::::::.* ::::::::::: F*CK YOU* ..:::::::::::* ::::::::::::* .::::::::::* ::::::::::::::..* ..::::::::::::.* ::::::::::::::::* ::::::::::::: .:::.* :::: ::::: .::::::::.* .:::: :::: .:::::::::::.* .::…

SpringIOC容器-对象依赖

1 概述 Spring中&#xff0c;如何给对象的属性赋值? 【DI, 依赖注入】 1) 通过构造函数 2) 通过set方法给属性注入值 3) p名称空间 4) 自动装配 5) 注解 1.1 通过构造函数 <!-- ###############对象属性赋值############### --><!-- 1) 通过构造函数 --><be…

f5长连接策略

但是把这些短连接汇聚到一起&#xff0c;集中F5的设备上&#xff0c;通过F5与服务器建立平滑的长连接&#xff0c;就解决了不断增大的并发连接。比如说前台有15万个并发连接&#xff0c;经过F5的优化&#xff0c;在服务器上只有不到5000个并发连接&#xff0c;而且在此过程中&a…

pdo-mysql_PHP: MySQL (PDO) - Manual

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY(int)Если этот атрибут установлен в true вPDOStatement, MySQL-драйвербудет использовать буферизованные версии API MySQL.Если вы пишете пе…