SpringBoot 의 main 방법 주입 service
4872 단어 SpringBootmainservice
springboot 에서 main 방법 을 사용 하면 일반적으로 service 를 주입 할 수 없습니다.앞으로 도 이러한 상황 이 발생 할 수 있 기 때문에 도구 류 의 방식 으로 진행 합 니 다.이 도구 류 는 고정 적 인 쓰기 로 직접 복사 하면 됩 니 다.
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (SpringContextUtil.applicationContext == null) {
SpringContextUtil.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}
public static <T> T getBean(String name, Class<T> clazz) {
return getApplicationContext().getBean(name, clazz);
}
}
그리고 주입 할 곳 에 정적 서 비 스 를 만 듭 니 다.
private static Service service;
그리고 사용 해 야 할 main 방법 중:
public static void main(String[] args) {
SpringApplication.run(**Application.class,args);
ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
service = applicationContext.getBean(**Service.class);
}
2.springboot 는 main 방법 으로 service 또는 dao 를 호출 합 니 다.대부분의 경우,우 리 는 springboot 을 사용 하여 웹 프로젝트 를 만 든 다음 에 인 터 페 이 스 를 통 해 접근 합 니 다.그러나 온라인 에서 달리 고 있 는 웹 프로젝트,일부 특수 한 데이터 가 있 습 니 다.계산 을 통 해 데이터 베 이 스 를 가 져 와 야 합 니 다.이 럴 때 우 리 는 원래 의 웹 프로젝트 중의 일부 service,dao 가 보조 적 으로 작 동 해 야 할 수도 있 습 니 다.하지만 서버 에 인 터 페 이 스 를 새로 열 수도 없다.
우 리 는 springboot 의 main 방법 을 통 해 이 조작 을 집행 합 니 다.
이 때 서비스 와 컨 텍스트 를 통 해 얻 을 수 있 습 니 다.
클래스 를 만 들 고 다음 코드 를 복사 합 니 다.
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Spring bean :
* : App.java , 。
*/
@Component
public class SpringUtil implements ApplicationContextAware{
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringUtil.applicationContext == null){
SpringUtil.applicationContext = applicationContext;
}
}
// applicationContext
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
// name Bean.
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
// class Bean.
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
// name, Clazz Bean
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
TestApp 방법 을 만 들 려 면 SpringUtilfa 와 같은 디 렉 터 리 에 두 어야 합 니 다.
package com.example.demo.test2;
import com.example.demo.controller.Aqjg_thePeriodController;
import com.example.demo.mapper.AppAqjgTaskMapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import java.util.List;
import java.util.Map;
@SpringBootApplication
@MapperScan(basePackages = {"com.example.demo.mapper"})
public class TestApp {
public static void main(String[] args) {
SpringApplication.run(TestApp.class, args);
ApplicationContext context = SpringUtil.getApplicationContext();
Aqjg_thePeriodController aqjg_thePeriodController = new Aqjg_thePeriodController();
AppAqjgTaskMapper appAqjgTaskMapper = context.getBean(AppAqjgTaskMapper.class); // dao service
List<Map<String,Object>> list = appAqjgTaskMapper.getTestSmsData();
System.out.println(" ");
}
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.