Spring入门案例(简单)
Posted Tang.Mr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring入门案例(简单)相关的知识,希望对你有一定的参考价值。
Spring的入门案例(简单)
该案例主要用来概述使用Spring IOC方式创建对象并调用方法,希望对大家有所帮助
Spring的概述
- 什么是Spring :Spring是分层的JavaSE/EE应用 full-stack 轻量级开源框架
Spring的两大核心:
IOC(Inverse Of Control 反转控制)
AOP(Aspect Oriented Programming 面向切面编程) - 我们为什么要使用Spring:Spring是一站式框架,称之为一站式框架的原因是Spring可以整合其他框架
- 什么是IOC :IOC的核心如下:
1.工厂负责对象生命力周期的管理:(Spring管理与销毁)
2.对象的依赖由工厂完成注入(Spring维护对象间关系)
Spring提出了对象工厂的概念,由Spring工厂来管理对象的生命周期。所谓的生命周期指的是从对象的创建一直到对象的销毁都由Spring来管理,我们无需再自己new对象,而是从Spring工厂中获取需要的对象,甚至对象依赖都是工厂来注入,无需手动注入依赖
案例流程总结:
第一步:创建maven Java工程,在pox.xml配置文件中导入以下jar包的坐标
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
</dependencies>
第二步:在Java包下创建以下包目录
第三步:在comfig目录下创建 SpringConfiguration类
在SpringConfigoration类上定义@ComponentScan注解告知Spring要扫描的包,Spring会>扫描并加载指定包下所有类中的注解。@Configuration注解告知Spring当前类是一个配置类;
第四步:在dao包下创建Dao接口,接口中创建一个无返回值的findAll方法
在dao包下创建impl包
在impl包下创建UserDaoImpl类实现UserDao接口,实现接口的方法,并在实现类上定义接口@Component注解给实现类起一个别名
第五步:在service包下创建一个UserService接口在接口中定义一个findAllUsers方法
在service包下创建impl包
在impl包下创建一个UserServiceImpl类实现UserService接口,在UserServiceImpl类中通过@Resource注解(指定依赖,就是通过类的别名创建对象)创建对象,并在对象的前面添加private(这里我定义的是UserDaoImpl对象),在UserServiceImpl中定义一个方法findAllUsers在类中打印查询开始,调用UserDaoImpl对象的方法,打印查询结束
第六步:在测试类中使用@Test注解进行测试
在测试方法中通过配置类创建对象(ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfiguration.class);),调用对象的getBean(“类的别名”)方法,方法的返回值Object类型,需要对对象进行强转(UserService userServiceImpl = (UserService) applicationContext.getBean(“userServiceImpl”);),最后调用对象的方法(userServiceImpl.findAllUsers();),进行测试(运行测试方法)
具体代码
comfing包
package com.czxy.comfig;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* @Author Jimmy
* @Date 2019/6/10 3:46 PM
* @Desc
*/
//告知Spring要扫描的包,Spring会扫描并加载指定包下所有类中的注解。
@ComponentScan(basePackages = "com.czxy.dao","com.czxy.service")
//注解告知Spring当前类是一个配置类;
@Configuration
public class SpringConfiguration
dao包
package com.czxy.dao;
public interface UserDao
public void findAll();
dao > impl包
package com.czxy.dao.impl;
import com.czxy.dao.UserDao;
import org.springframework.stereotype.Component;
/**
* @Author Jimmy
* @Date 2019/6/10 3:48 PM
* @Desc
*/
@Component("userDaoImpl")
public class UserDaoImpIA implements UserDao
public void findAll()
System.out.println("A方式 查询所有");
service包
package com.czxy.service;
public interface UserService
public void findAllUsers();
service > impl包
package com.czxy.service.impl;
import com.czxy.dao.UserDao;
import com.czxy.service.UserService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @Author Jimmy
* @Date 2019/6/10 3:48 PM
* @Desc
*/
@Component("userServiceImpl")
public class UserServiceImplA implements UserService
//指定依赖
@Resource(name = "userDaoImpl")
private UserDao userDao;
public void findAllUsers()
System.out.println("查询所有");
userDao.findAll();
System.out.println("查询结束");
test包
package com.czxy.test;
import com.czxy.comfig.SpringConfiguration;
import com.czxy.service.impl.UserServiceImplA;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import javax.annotation.Resource;
/**
* @Author Jimmy
* @Date 2019/6/10 3:48 PM
* @Desc
*/
public class TestA
@Test
public void test()
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfiguration.class);
UserService userServiceImpl = (UserService) context.getBean("userServiceImpl");
userServiceImpl.findAllUsers();
运行结果
整合JUnit4
只需要修改测试文件即可,前面在pom.xml文件中已经导入了spring-test jar的坐标,代码如下
package com.czxy.test;
import com.czxy.comfig.SpringConfiguration;
import com.czxy.service.impl.UserServiceImplA;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
/**
* @Author Jimmy
* @Date 2019/6/10 3:48 PM
* @Desc
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class TestA
@Resource(name = "userServiceImpl")
private UserServiceImplA serviceImplA;
@Test
public void test()
serviceImplA.findAllUsers();
运行结果
以上是关于Spring入门案例(简单)的主要内容,如果未能解决你的问题,请参考以下文章