service 층 에 mapper 타 임 스 빈 지침 을 주입 하여 해결 합 니 다.
오늘 또 매우 까다 로 운 문제 에 부 딪 혔 다.
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBoot_Run.class)
@ContextConfiguration(locations = { "classpath:mybatis/mappers/RevMapper.xml" })
public class TestTransaction {
@Autowired
RevMapper remapper;
@Test
public void testInsert() {
ReData data = new ReData();
data.setReTime(new Date()).setSeID("fdewfcdsfdssdfdsf").setSendDate(new Date());
remapper.insertObject(data);
}
그다음에 서비스 코드.
public class ReService {
@Autowired
private RevMapper reMapper;
private Socket socket=null;
private BufferedReader br=null;
private PrintWriter pw=null;
public void recevice() {
try {
// , 3081
ServerSocket serv
RevMapper 류 는 테스트 할 때 잘 주입 되 어 있 습 니 다.모 는 service 에서 비어 있 습 니 다.계속 비어 있 습 니 다.비어 있 습 니 다!!인터넷 에서 말 하 는@mapperScan 과@mapper 의 주 해 를 나 는 모두 한 번 더 넣 었 다.이것 은 모 를 위 한 것 이다!!!!!
모든 신 을 박람 하 는 CSDN 에서 나 는 모두 가 베 끼 고 베 낀 것 을 발견 했다.동생 은 탄복 했다!!
해결!!!
제 가 시동 류 에 이렇게 써 있어 서 요.
@SpringBootApplication(exclude=DataSourceAutoConfiguration.class)
@MapperScan(“cn.yungtay.mapper”)
public class SpringBoot_Run {
public static void main(String[] args) {
SpringApplication.run(SpringBoot_Run.class, args);
ReMapper re=new ReMapper();
re.receive;
}
}
대단한 오빠 들 뿌리 지 마,내 첫 반응 은 이 랬 어!!문제 가 나 왔 습 니 다.대상 이 new 가 나 왔 을 때 그 는 spring 관리 에 맡 기지 않 았 기 때문에 대상 이 전혀 주입 되 지 않 았 습 니 다.null 은 당연한 것 입 니 다.
두 번 째 문 제 는 주 시작 클래스 에 따라 작 동 하 는 방법 을 생각해 보 세 요.이렇게 하 셔 도 됩 니 다.
@Service
public class ReService implements ApplicationRunner{
@Autowired
private RevMapper reMapper;
private Socket socket=null;
。。。。。。。。。。。。。
@Override
public void run(ApplicationArguments args) throws Exception {
// TODO Auto-generated method stub
XXXXXXXX
}
내 가 좀 더 지혜 로 워 진 것 같 아!springmvc 일반 클래스(비 control,service)주입 mapper 는 null 입 니 다.
프로젝트 에 타 이 머 를 쓸 때 mapper 를 주입 하여 데이터 베 이 스 를 조작 하고 serviceimpl 과 같은 주입 을 사용 해 야 합 니 다.
@Autowired
UserMapper usermapper;
유효 하지 않 습 니 다.debug 후 usemapper 가 null 인 것 을 발 견 했 습 니 다.주입 에 성공 하지 못 했 음 을 설명 합 니 다.다른 글 을 보고 new 에서 나 온 thread 가 spring 용기 에 없 기 때문에 주입 에 성공 하지 못 하고 bean 을 얻 었 습 니 다.
그러나 그의 방법 에 따 르 면 여전히 null 이 고 그의 생각 은 자발적으로 bean 을 주입 하 는 것 이 옳 을 것 이다.
그러나 나 는 이것 이 좀 특수 할 수 있 기 때문에 결국 최종 대 법 을 사용 할 수 밖 에 없다.
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
usermapper = (UserMapper) ac.getBean("UserMapper");
usermapper.deleteAllCookies();
mapper 에 게 이름 을 주 는 것 을 잊 지 마 세 요.
@Repository(value="UserMapper")
public interface UserMapper {
public List<User> selectByExample(@Param("username1")String username,@Param("password")String password);
public int insertToken(@Param("username1")String username,@Param("token")String token);
public String checkToken(String token);
public int logout(@Param("username1")String username,@Param("token")String token);
public int deleteAllCookies();
}
이 방법 은 주관적 으로 느낌 이 좋 지 않 으 니 우선 이렇게 합 시다!이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Angular에서 서비스를 사용하여 데이터 공유Michael은 두 가지 구성 요소로 각도 프로젝트를 시작했습니다. 그는 입력 데코레이터를 사용하여 부모에서 자식 구성 요소로 데이터를 전달하고 출력 데코레이터를 사용하여 자식에서 부모 구성 요소로 데이터를 전달했습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.