Spring入门例程——javaweb整合开发王者归来例子

时间:2021-04-29 13:17:32

Spring入门例程——javaweb整合开发王者归来例子

照着书把例子调通,记录一下过程,分享学习经历,也是第一篇经验博客,根据自己学习时遇到的问题,会把spring目录结构贴出来,有以下几个准备事项:

http://download.csdn.net/detail/jl381169437/9329563

目录结构

Spring入门例程——javaweb整合开发王者归来例子

spring包下载

http://download.csdn.net/detail/jl381169437/9329577

创建一个Spring的工程,项目名称及包名类名参照图片,该工程会根据Springle配置文件(applicationContext.xml)加载配置文件中的JavaBean,并通过Java的反射机制调用getter、setter方法设置彼此间的依赖,然后从工程中获取Java对象,执行就可以了


web.xml

用于配置spring框架:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">


<!-- Spring配置 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/classes/applicationContext.xml</param-value>
</context-param>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

applicationContext.xml

配置文件,放在src目录下:

<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
>

<!-- DAO对象 -->
<bean id="daoImpl"
class="com.helloweenvsfei.spring.example.DaoImpl">

</bean>
<!-- service对象 -->
<bean id="service"
class="com.helloweenvsfei.spring.example.ServiceImpl">

<!-- 设置DAO属性 -->
<property name="dao" ref="daoImpl"></property>
</bean>
</beans>

IDao.java

Dao接口只有一个方法sayHello:

package com.helloweenvsfei.spring.example;

public interface IDao {
public String sayHello(String name);
}

DaoImpl.java

实现Dao接口,并根据实际输出不同的问候句:

package com.helloweenvsfei.spring.example;

import java.util.Calendar;

public class DaoImpl implements IDao {
public String sayHello(String name){
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);

if(hour < 6) return "凌晨早" + name;
if(hour < 12) return "早上好" + name;
if(hour < 13) return "中午好" + name;
if(hour < 18) return "下午好" + name;
return "晚上好" + name;
}
}

IService.java

定义S而vice层接口。只有一个service方法,没有任何DAO层的以来,没有任何冗余的代码:

package com.helloweenvsfei.spring.example;

public interface IService {
public void service(String name);
}

ServiceImpl.java

Service实现层中,定义了一个IDao类型的对象,以及对应的getter、setter方法:

package com.helloweenvsfei.spring.example;

public class ServiceImpl implements IService {
private IDao dao;
public void service(String name){
System.out.println(dao.sayHello(name));
}
public IDao getDao(){
return dao;
}
public void setDao(IDao dao){
this.dao = dao;
}
}

SpringTest.java

package com.helloweenvsfei.spring.example;

import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class SpringTest {

public static void main(String[] args) {
XmlBeanFactory factory = new XmlBeanFactory(
new ClassPathResource("applicationContext.xml"));
IService hello = (IService) factory.getBean("service");
hello.service("Helloween");
factory.destroySingletons();
}

}