spring3理解,第一个程序,浅谈三大框架

本文探讨了在JavaWeb开发中使用框架的重要性,通过引入Spring框架实现各层间的解耦,提高了开发效率与代码质量。文章详细介绍了不使用框架时存在的问题,并对比展示了使用Spring框架后的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    当我们学习javaweb到一定程度时,如果还使用简单的mvc设计模式,什么框架都不使用,对于开发者来说是痛苦的,我们不仅要了解,前台开发的知识,这里主讲后台的实现,你会发现作为一个后台程序员,要学习的东西太多了,我们不仅了解,各个主流数据库的差异,还要了解标准数据库语言,还要了解jdbc操作,以及jsp+servlet+javaBean,等实现原理,还要了解过servlet过滤器,监听器,等,以及事务的处理,事务的隔离级别,如果不使用任何框架,我们可能采用mvc三层模式,即web,service,dao,但是分为三层并没用多大的意义,因为宏观上,三层是分开了,给人的印象也许是,也许是代码上的三层,底层实际上还是耦合在一起.对事务的管理也许会拉长事务的处理时间,在请求级别上,开启事务session,在过滤器中开启session,然后绑定到当前线程,也许这样可以保证,一次请求一次事务,但是拉长了事务处理的时间,对于大访问量的网站来说,也是间接浪费服务器资源.

  好了,言归正传,总之框架的出现,减少了程序员的重复代码,可以使我们快速特定的业务需求,也定义了代码标准.

现在流行的mvc模式面向接口编程等设计思想,都是减少各个层次的耦合度,软件的设计就是要高内聚低耦合,比如说我们当前的项目满足了我们当前的需求,但是如过某一天,我们的客户又提出了另一种需求,难道我们还用重新再写一遍项目吗?这显然费时费力,这时也就体现了高内聚低耦合的优势,如果一开始我们的项目各个层次之间的耦合度较低,也许我们只要修改配置文件,增加一些模块,就可以当前项目满足客户的要求.

目前经典的三层体系架构所使用的框架都有:

web:struts2,springmvc


service:spring

dao:hibernate,mybatis,ibatis, jdbctemplate,spring data等;

未使用框架的时的三层耦合度(上图):



而当我们使用spring框架时,我们可以使用spring框架可以从配置文件中得到Dao层实现类和Service层实现类,还可以指定要使用的工厂,我们要使用的具体类可以右spring来管理,也就是具体的依赖管理,不由被

依赖的双方管理,而是由第三方管理,这就是spring容器,其实淘宝也是就是一个大容器,

这就实现了各个层次的解耦,增强了程序的健壮性.

spring第一个程序:

dao层:
package com.leige.dao;


public interface UserDao {
	public void add();
}

daoimpl
package com.leige.dao;

public class UserDaoImpl  implements UserDao{

	@Override
	public void add() {
		// TODO Auto-generated method stub
		System.out.println("userDao----add");
	}

}

service层:
package com.leige.dao;

public interface UserService {
	public void save();
}
service实现:
package com.leige.dao;

public class UserServiceImpl implements UserService {
	private  UserDao dao;
		//被注入的属性要包含set方法:
	public void setDao(UserDao dao) {
		this.dao = dao;
	}

	@Override
	public void save() {
		// TODO Auto-generated method stub
		System.out.println("userService");
	dao.add();
	}
	
}


spring配置beans:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       					   http://www.springframework.org/schema/beans/spring-beans.xsd
       					   http://www.springframework.org/schema/context
       					   http://www.springframework.org/schema/context/spring-context.xsd">
	<!--  
	<context:component-scan base-package="com.itheima.g_annotation.b_web"></context:component-scan>
	-->
	<!-- 使 注入的注解可以使用 -->

	
	<!-- 所有的bean都在xml配置 
		所有的依赖都是注解
	--><bean name=" userDaoId" class="com.leige.dao.UserDaoImpl"></bean>
	<bean name="userServiceId" class="com.leige.dao.UserServiceImpl">
	    <property name="dao" ref="userDaoId"></property>
	</bean>
</beans>

测试:
package com.leige.dao;



import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDemo {

	@Test
	public void test() {
		String xmlPath = "beans.xml";
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
		UserService service=(UserService) applicationContext.getBean("userServiceId");
		service.save();
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值