就这样,春天来了吗?,就这样“鸟语花香”了吗?Spring 真的来啦,那winter还会远吗?
答案是:说是迟那是快。你还在踌躇吗,那就让我们赶紧开始我们的spring 之旅吧!
Spring 初体验
首先介绍一下究竟什么是spring 其意"春天" Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。
环境搭建
那我们如何搭建spring开发环境呢 由于我只做Ioc操作,所以我们只需引入spring.jar和日志文件。在引入jar包之后我们就来创建一个xml文件一般情况下我们命名为applicationContext.xml 路径存放src下
实现控制反转代码:
Xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
<!--默认命名空间-->
xmlns="http://www.springframework.org/schema/beans"
<!--w3c标准 XMLSchema-instance-->
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<!--schema约束对应地址-->
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!--id为利用反射机制创建的对象名称一般清空为了便于记忆写成对应的class里的类名-->
<bean id="greetingDaoImpl" class="cn.csdn.dao.GreetingDaoImpl">
<!--name对应bean里对应的属性value为属性值-->
<property name="say" value="你好"></property>
</bean>
<bean id="greetingServiceImpl"
class="cn.csdn.service.GreetingServiceImpl">
<!--ref应用一个bean实体对象-->
<property name="gdi" ref="greetingDaoImpl"></property>
</bean>
</beans>
Dao的实现层
//接口
public interface GreetingDao {
void say();
}
//实现接口
public class GreetingDaoImpl implements GreetingDao {
private String say;
public void say() {
System.out.println("我打了这个招呼"+say);
}
public void setSay(String say) {
this.say = say;
}
}
Service 实现层
//继承dao的实现层
public interface GreetingService extends GreetingDao {
}
//service实现
public class GreetingServiceImpl implements GreetingService{
private GreetingDaoImpl gdi;
public void say() {
gdi.say();
}
public void setGdi(GreetingDaoImpl gdi) {
this.gdi = gdi;
}
}
Junit测试
public class GreetingTest {
@Test
public void test(){
ApplicationContext
ac=new ClassPathXmlApplicationContext("Longmanfei.xml");
//控制反转成对象,并且在此时调用相应的set方法进行say的赋值
GreetingServiceImpl
gsi=(GreetingServiceImpl) ac.getBean("greetingServiceImpl");
gsi.say();
}
@Test
public void test1(){
/*加载spring容器可以解析多个配置文件采用数组方式传递*/
ApplicationContext ac=new ClassPathXmlApplicationContext(new String[]{"Longmanfei.xml"});
//直接转换成接口便于日后修改数据/*Ioc控制反转体现*/
GreetingService
gs=(GreetingService) ac.getBean("greetingServiceImpl");
gs.say();
}
@Test
public void test2(){
/*加载spring容器可以解析多个配置文件采用数组方式传递*/
ApplicationContext ac=new FileSystemXmlApplicationContext(new String[]{"src/Longmanfei.xml"});
//直接转换成接口便于日后修改数据/*Ioc控制反转体现*/
GreetingService
gs=(GreetingService) ac.getBean("greetingServiceImpl");
gs.say();
}
}