全部:
我刚开始春季研究,有一个概念让我很困惑:自动装配。
我需要澄清的问题是:
What kind of thing can be autowired? Is it only other beans?
如果我定义了一个类条:
public class Bar {
@Autowired
public String name;
}
我在想,如果我向String name;这样的成员变量添加一个@Autowired注释,在bean配置XML中,我会写到:
<bean id="bar" class="com.Bar">
<pr
我想知道,在性能方面,这些情况之间有什么更好的东西:
@Component
public class A{
public void doSomethingOne(){
ServiceDelegateA serviceA = (ServiceDelegateA) ApplicationContextUtils.getBean("ServiceDelegateA");
serviceA.compute();
}
public void doSomethingTwo(){
Serv
我正在学习Spring,据我所知,当我们在具有泛型名称(而不是setter方法)的方法上使用@注释时,该方法的参数是自动的。
public class MovieRecommender {
private MovieCatalog movieCatalog;
private CustomerPreferenceDao customerPreferenceDao;
@Autowired
public void prepare(MovieCatalog mC,
CustomerPreferenceDao cPD) {
t
在使用Spring4.3、JPA2.1和Hibernate 5将对象持久化到数据库时,我遇到了问题。这是我的配置:
@Configuration
@EnableTransactionManagement
public class PersistenceConfig {
/**
* most bean methods skipped, left only the relevant ones
**/
@Bean
@Autowired
public LocalContainerEntityManagerFactoryBean entityMana
我看到了一些包含EntityDAO、EntityDAOImpl和EntityService的Spring项目.我不明白他们之间有什么区别。例如,我有一个user实体。
public Class UserEntity {
private int userId;
private String userName;
private String userInfo;
// getter and setter
}
UserDAO:
@Repository
public interface UserDAO {
@Select({"SELECT * FROM u
我对Spring中的注解有一个问题。我似乎不能用@Qualifier注解来更新对象。让我们对我的问题做一个简略的版本:
假设我有一个父java类,如下所示:
public class test {
@Autowired
protected object x;
}
使用如下构造函数扩展父类的子类:
public class testChild extends test {
@Autowired
public testChild(@Qualifier("y") Object y) {
this.x = y;
}
和2个Bean,一个带有
在我的项目中,我有三个类,它们与多级继承相关,如下所示
@Component
@Scope("prototype")
class A{
}
@Component
@Scope("prototype")
class B extends A{
}
@Component
@Scope("prototype")
class C extends B{
}
现在,通过使用@Autowired注释,我希望C类对象在管理器类中
@Component(value = "manager")
@Scope("prototype
代替自动装配SessionFactory和创建HibernateTemplate,可以自动装配HibernateTemplate吗?
public class DaoImpl implements Dao {
private HibernateTemplate hibernateTemplate;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
hibernateTemplate = new HibernateTemplate(sessionFactory);
}
...
}
用下面
我有个测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestRepositoryConfig.class})
@Transactional
public class ServiceTest {
@Autowired
private UserRepository userRepository;
@Autowired
private Service service;
static {
initTestUser();
}
public void s
这实际上是我问的问题的一部分,这个问题没有得到回答,最终被标记为重复。
问题: --我只需用@Autowired对其进行注释,就可以使用JavaMailSender。我没有通过任何配置类公开它。
@Component
public class EmailUtil {
@Autowired
private JavaMailSender javaMailSender;
}
但是,除非通过配置类公开BCryptPasswordEncoder bean,否则以下内容无法工作。
@Controller
public class User
有时Spring组件可能如下所示:
@Service
public final class SomeService {
@Autowired
private SomeService2 someService2;
@Autowired
private SomeService3 someService3;
@Autowired
private SomeService4 someService4;
// … and many other services
@Autowired
private SomeDao someDao;
避免构造函数和字段注入的最佳选择是什么?
据我所知,不推荐字段注入,构造函数是可行的。()
在下面的场景中,可以在@Configuration中创建类A中的新B()作为costructor parm。
但是,A类也需要其他bean来操作,例如C/D/E,而C/D/E又有自己的自动依赖关系。我很困惑如何在这里应用最好的推荐方法。
如果有什么建议,请告诉我。
@Configuration
class Config
{
@Bean
public A create_A(){
A = new A(new B());
}
}
class A {
B b;
@Autowired
您将如何进行集成测试一个spring应用程序,该应用程序是注释配置和组件扫描的,而且根本没有XML?我遇到了一个难题,那就是需要用测试组件替换生产组件,而不需要实际使用xml配置或反射注入所有@autowired部件。
示例:
interface A {...}
@Component
class AImpl implements A {
...
}
interface B {...}
@Component
class BImpl implements B {
@Autowired A a;
...
}
interface C {...}
class CI