菜鸟学习Spring——第一个例子

本文通过示例介绍了如何使用Spring框架的IoC容器管理对象依赖,展示了通过XML配置文件实现对象创建和依赖注入的过程,从而实现解耦。

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

一、概述
原来我们利用工厂来实现灵活的配置。现在利用Spring以后把这个交给了IoC容器管理。我们只要在XML文件上配上就可以了这样的话就节省了很多开发时间我们不需要知道后面的有多少只要动态的配上类就可以了下面就给大家做一个例子
二、代码展示。

文件目录如下图:


需要引用的jar包:

spring.jar

Lib/log4j/log4j.jar

Lib/jakarta-commons/commons-logging.jar

需要引用的文件

Log4j.properties

下面是代码:

UserDao.java

	package com.bjpowernode.spring.dao;
	
	public interface UserDao {
	
		public void addUser(String userName,String password);
		
		
	}


UserDao4MySqlImpl.java

	package com.bjpowernode.spring.dao;
	
	public class UserDao4MySqlImpl implements UserDao {
	
		public void addUser(String userName, String password) {
			// TODO Auto-generated method stub
			System.out.println("UserDao4MySqlImpl.addUser()");
		}
	
	}


UserDao4OrcleImpl.java

	package com.bjpowernode.spring.dao;
	
	public class UserDao4OrcleImpl implements UserDao {
	
		public void addUser(String userName, String password) {
			// TODO Auto-generated method stub
			System.out.println("UserDao4OrcleImpl.addUser()");
		}
	
	}


UserManager.java

	package com.bjpowernode.spring.manager;
	
	public interface UserManager {
	
		public void addUser(String userName,String password);
	
	}


UserManagerImpl.java

	package com.bjpowernode.spring.manager;
	
	import com.bjpowernode.spring.dao.UserDao;
	
	public class UserManagerImpl implements UserManager{
	
		private UserDao userDao;
		
		
		public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
		}
	
	
	//	public UserManagerImpl(UserDao userDao) {
	//		
	//		this.userDao = userDao;
	//	}
	
	
		public void addUser(String userName, String password) {
			// TODO Auto-generated method stub
	//		//由我们的应用程序负责服务定位
	//		UserDao userDao=new UserDao4MySqlImpl();
			userDao.addUser(userName, password);
		}
	
	}


Client.java

	package com.bjpowernode.spring.client;
	
	import org.springframework.beans.factory.BeanFactory;
	import org.springframework.context.support.ClassPathXmlApplicationContext;
	
	import com.bjpowernode.spring.dao.UserDao4MySqlImpl;
	import com.bjpowernode.spring.manager.UserManager;
	import com.bjpowernode.spring.manager.UserManagerImpl;
	
	public class Client {
	
		/**
		 * @param args
		 */
		public static void main(String[] args) {
			BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
			UserManager userManager=(UserManager) factory.getBean("userManager");
			
			userManager.addUser("张三", "123");
	//		// TODO Auto-generated  method stub
	//			UserManager userManager=new UserManagerImpl(new UserDao4MySqlImpl());
	//			userManager.addUser("张三", "1231");
		}
	
	}


applicationContext.xml

	<?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:aop="http://www.springframework.org/schema/aop"
		     xmlns:tx="http://www.springframework.org/schema/tx"
		     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
	           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	
	<bean id="userDao4MySql" class="com.bjpowernode.spring.dao.UserDao4MySqlImpl"/>
	
	<bean id="userDao4Orcle" class="com.bjpowernode.spring.dao.UserDao4OrcleImpl"/>
	
	<bean id="userManager" class="com.bjpowernode.spring.manager.UserManagerImpl">
		<!-- <constructor-arg  ref="userDao4MySql" /> -->
		<property name="userDao" ref="userDao4MySql"/>
	</bean>
	

</beans>


运行结果:


三、比较
与原来用工厂写的区别就在于UserManagerImpl.java和Client.java这两个类的写法不一样原来这两个类这样写
UserManagerImpl.java

	package com.bjpowernode.spring.manager;
	
	import com.bjpowernode.spring.dao.UserDao;
	import com.bjpowernode.spring.dao.UserDao4MySqlImpl;
	
	public class UserManagerImpl implements UserManager{
	
		public void addUser(String userName, String password) {
			// TODO Auto-generated method stub
			//由我们的应用程序负责服务定位
			UserDao userDao=new UserDao4MySqlImpl();
			userDao.addUser(userName, password);
		}
	
	}


Client.java

	package com.bjpowernode.spring.client;
	
	import com.bjpowernode.spring.manager.UserManager;
	import com.bjpowernode.spring.manager.UserManagerImpl;
	
	public class Client {
	
		/**
		 * @param args
		 */
		public static void main(String[] args) {
			// TODO Auto-generated method stub
				UserManager userManager=new UserManagerImpl();
				userManager.addUser("张三", "1231");
		}
	
	}


四、总结

Spring给我们带来了很大的便利这样让我们开发的时候对象与对象之间进行了解耦。让我们维护起来更加方便,当需求修改的时候我们只要修改一下配置文件,添加对象就可以了不用修改写好的代码。

转载于:https://www.cnblogs.com/iplus/p/4490371.html

### MyBatis 配置类详解 MyBatis 的核心配置主要集中在 `mybatis-config.xml` 文件中,该文件用于定义全局性的配置选项[^1]。此配置文件可以包含多个部分,如环境配置、类型别名、映射器等。 #### 环境配置 (Environments) 环境中可指定多种属性,包括但不限于数据源(DataSource)、事务管理器(Transaction Manager)等。对于 Spring Boot 项目而言,默认情况下这些配置会被 mybatis-spring-boot-autoconfigure 自动读取并应用到应用程序上下文中[^5]。 ```xml <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> </configuration> ``` 这段 XML 片段展示了如何在一个典型的 MyBatis 应用程序里设置开发环境下的 JDBC 数据库连接池。 #### 类型处理器与别名(Type Handlers and Aliases) 为了简化 SQL 映射语句中的 Java 类型表示,可以通过 `<typeAliases>` 和 `<typeHandlers>` 来注册自定义的类型处理方式和简短名称: ```xml <typeAliases> <!-- 单个类型的别名 --> <typeAlias alias="User" type="com.example.model.User"/> <!-- 整包扫描 --> <package name="com.example.model"/> </typeAliases> <!-- 定义特定字段的数据转换规则 --> <typeHandlers> <typeHandler javaType="java.util.Date" handler="org.apache.ibatis.type.LocalDateTimeTypeHandler"/> </typeHandlers> ``` 这里展示的例子说明了怎样为实体对象设定别名以便于在 Mapper 文件内更简洁地引用它们;同时也指定了日期时间字段应采用哪种方式进行序列化/反序列化操作。 #### 插件(Plugins) MyBatis 支持通过插件机制扩展其行为而不必改动现有业务逻辑代码。例如,利用官方提供的分页插件 PageHelper 可以轻松实现查询结果集的分片显示功能。 ```xml <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="reasonable" value="true"/> </plugin> </plugins> ``` 上述片段介绍了向 MyBatis 添加第三方插件的方式——只需声明相应的拦截器及其初始化参数即可完工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值