Я новичок в Spring, но я обнаружил это рабочее решение. Скажите, пожалуйста, если это неприемлемо.
Я делаю Spring applicationContext
в этом компоненте:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
@Component
public class SpringUtils {
public static ApplicationContext ctx;
/**
* Make Spring inject the application context
* and save it on a static variable,
* so that it can be accessed from any point in the application.
*/
@Autowired
private void setApplicationContext(ApplicationContext applicationContext) {
ctx = applicationContext;
}
}
Вы можете поместить этот код в основную класс приложения, если вы хотите.
Другие классы могут использовать его следующим образом:
MyBean myBean = (MyBean)SpringUtils.ctx.getBean(MyBean.class);
Таким образом, любой bean-компонент может быть получен любым объектом в приложении (также запутанным с new
) и статическим способом.
Используйте инструкцию INSERT ... SELECT
, в которой вы выбираете постоянные значения, а также данные из products_temp
:
INSERT INTO products (product_data, vendor_id)
SELECT data, '1' FROM products_temp