2015-09-05 46 views
0

我有以下类自动装配Autowired不创造价值仓库

Sample.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)时,存储库对象始终为空。

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

或者为什么存储库对象的值始终为空?

回答

-1

因为你不在Java EE环境中(你有一个主要方法),因为你没有在你的代码中初始化Spring。根据你想去的地方,查找适当的文件。

+0

不相关的Java EE,春天DI是一个轻量级的容器 – Gab

0

让您的应用程序工作的最简单方法是使用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); 
    } 
} 
+0

你能指出我的权利春季开机罐版本 – Arun

+0

最新版本是1.2.5。 http://mvnrepository.com/artifact/org.springframework.boot – johnktims

相关问题