【问题标题】:Autowired doesn't create repository valueAutowired 不会创建存储库值
【发布时间】:2015-09-05 22:13:34
【问题描述】:

我有以下课程

示例.java

@Entity
@Table(name = "SAMPLE")

public class Sample extends Model {

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "NAME")
        private String name;
    }
}

SampleRepository.java

@Repository
public interface SampleRepository extends CrudRepository<Sample, Long> {

    List<Sample> findByName(String name);
}

Application.java(主类)

public class Application {

@Autowired
SampleRepository repository;

public static void main(String args[]) {
    new Application().doThings();
}

public void doThings() {
    Sample sample = new Sample();
    sample.setName("arun");
    repository.save(sample);
}

}

我没有 sprint-context.xml

当我尝试运行主类 (Application.java) 时,存储库对象始终为空。

我应该如何配置它以通过自动装配填充存储库对象中的值?

或者为什么repository对象的值总是null?

【问题讨论】:

    标签: java spring hibernate orm spring-data


    【解决方案1】:

    让您的应用正常运行的最简单方法是使用 Spring Boot。下面是一个命令行应用程序示例:https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-simple

    所以你的应用看起来像这样:

    @SpringBootApplication
    public class Application implements CommandLineRunner {
    
        @Autowired
        SampleRepository repository;
    
    
        @Override
        public void run(String... args) {
            this.repository.doThings();
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication application = new SpringApplication(Application.class);
            application.setApplicationContextClass(AnnotationConfigApplicationContext.class);
            SpringApplication.run(Application.class, args);
        }
    
        public void doThings() {
            Sample sample = new Sample();
            sample.setName("arun");
            repository.save(sample);
        }
    }
    

    【讨论】:

    【解决方案2】:

    因为您不在 Java EE 环境中(您有一个 main 方法)并且因为您没有在代码中初始化 Spring。根据您想去的地方,查找相应的文档。

    【讨论】:

    • 与java-ee无关,spring DI是轻量级容器
    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多