Spring4 实例
Posted Red_Code
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring4 实例相关的知识,希望对你有一定的参考价值。
结构目录如下:
其中:
dao层和entity层都属于hibernate的的管辖。
entity层里面装的是每张表对应的持久化类。
dao层里面装的是“底层操作数据库的行为”,仅仅只是单纯的增删查改等。(创建步骤是:先定义dao接口,再定义该dao接口各个impl实现类)。
service层属于spring的管辖。
service层里面装的是“具体的业务逻辑操作”,
该层操作的是“dao接口”。而spring负责将具体的“dao实现类”注入到该层。
该层通过dao层提供的数据进行具体的业务逻辑编写。
Test是测试类,beans.xml是bean的配置文件。
User.java
//持久化类,这个类对应的是数据库里的user表,该表有name和age这两个字段。 public class User { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public String getName() { return name; } }
UserDao.java
import com.springdemo.entity.User; /** * Created by CLY on 2016/12/26. */ public interface UserDao { //创建了个demo接口方法,供实体类实现。这个方法本来的作用是:“获取user对象,将用户信息存入数据库” public void save(User user); }
UserDaoImpl.java
import com.springdemo.dao.UserDao; import com.springdemo.entity.User; /** * Created by CLY on 2016/12/26. */ public class UserDaoImpl implements UserDao { //实现UerDao接口的save方法 public void save(User user) { //本来是要将作为参数传入的“user持久化类”的对象存入数据库的,但此处主要是突显依赖注入,所以就忽略具体的操作了。 System.out.print("用户名:"+user.getName()+" 年龄:"+user.getAge()); } }
UserService.java
import com.springdemo.entity.User; /** * Created by CLY on 2016/12/26. */ public interface UserService { //mvc框架中的“控制器”会将User对象传给service层的这个方法。(因为是测试,就忽略控制器了) // 该方法负责对user对象进行一些业务逻辑的处理,之后传给dao层。 public void add(User user); }
UserServiceImpl.java
import com.springdemo.dao.UserDao; import com.springdemo.entity.User; import com.springdemo.service.UserService; /** * Created by CLY on 2016/12/26. */ public class UserServiceImpl implements UserService{ private UserDao userDao;//定义dao层的“接口” public void add(User user) { /* * 将控制器传过来的user对象传给dao层。 * 此处体现的是面向接口编程。好处就是:当该接口的具体实现类改变时,并不需要修改此service中的代码,因为service操作的是接口的方法*/ userDao.save(user); } public UserDao getUserDao() { return userDao; } /* * 为userDao的具体实现类对象的注入做准备。 * 因为此处调用的是接口方法,我们需要指明具体调用该接口的哪一个实现类。 * 此时dao实现类是“通过IoC容器注入进来的”,而非service实现类调用得到的*/ public void setUserDao(UserDao userDao) { this.userDao = userDao; } }
beans.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:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <!--注册一个UserDaoImpl对象,实例名为“u”--> <bean id="u" class="com.springdemo.dao.impl.UserDaoImpl"></bean> <!--注册一个UserServiceImpl对象,实例名为“userService”--> <bean id="userService" class="com.springdemo.service.impl.UserServiceImpl"> <!--将UserDaoImpl类型的“u”对象,注入到userService实例的userDao属性中去--> <property name="userDao"> <ref bean="u"/> </property> </bean> </beans>
Test.java
import com.springdemo.entity.User; import com.springdemo.service.impl.UserServiceImpl; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Created by CLY on 2016/12/26. */ public class Test { //测试UserServiceTest的add方法 public static void main(String args[]){ //创建spring容器,将beans的配置文件装载进容器。 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); //通过容器的getBean()方法,获取具体的bean实例(参数是bean的id名)。 UserServiceImpl service = (UserServiceImpl)ctx.getBean("userService"); User u =new User(); u.setName("小明"); u.setAge(18); service.add(u); } }
最后运行结果:
以上是关于Spring4 实例的主要内容,如果未能解决你的问题,请参考以下文章