一个类没有接口,如何实现Spring管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个类没有接口,如何实现Spring管理相关的知识,希望对你有一定的参考价值。

package service;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import entity.Person;
@Component
public class SpringService

private String name;
private String job;
@Resource
public void setName(String name)
this.name = name;

@Resource
public void setJob(String job)
this.job = job;

public Person getPerson()
Person person = new Person();
person.setJob(job);
person.setName(name);
return person;



如上述一下小类,在applicationContext.xml中配置了相关的name,job的属性
那么在没,测试类中通过getBean来取到这个类,那么如何来接收这个getBean呢?因为没有这个类的接口,真是麻烦死了

Spring有个配置文件,那个文件需要初始化也就是形成容器,他在web里面或者WEB-INF文件下面初始化。

你现在因为没启动服务器要测试就应该写成如下例子:

下面写的是sql添加你可以写成别的,

需要加入的包;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

@ContextConfiguration(locations="classpath:applicationContext.xml")//初始化容器
public class PersonTest extends AbstractJUnit4SpringContextTests
@Autowired //这里是自动注入接口
private PersonService ps;
@Autowired
private DeptService ds;
@Test
public void testSave() 
for(int j=1;j<11;j++)
Dept dept = new Dept();
dept.setName("部门"+j);
ds.save(dept);
for (int i = 1; i < 16; i++) 
Person person = new Person();
person.setBirthday("1998-10-20");
person.setName(dept.getName()+"的用户" + i);
person.setPwd("000000");
person.setSal(2000);
person.setDept(dept);
ps.saveOrUpdate(person);



在上面代码中加入你的代码,getBean 那些步骤应该可以用了。你试试

参考技术A 用这种注解的方式,你可以在 component后面加上名称比如@Component("springService")这样你getbean("springService")就可以了 参考技术B 既然你是测试,又何必计较这个

以上是关于一个类没有接口,如何实现Spring管理的主要内容,如果未能解决你的问题,请参考以下文章

Spring AOP-事务管理

spring之IOC实现

JAVA Spring框架配了视图解析器,如何发布一个外部系统可调用的HTTP接口

CommandLineRunner接口总结

spring 为啥要先写接口,再写实现类?

spring-aop