Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring Boot Hibernate RestFull服务PostgreSQL_Spring Mvc_Spring Boot_Spring Data_Spring Restcontroller_Spring Repositories - Fatal编程技术网

Spring mvc Spring Boot Hibernate RestFull服务PostgreSQL

Spring mvc Spring Boot Hibernate RestFull服务PostgreSQL,spring-mvc,spring-boot,spring-data,spring-restcontroller,spring-repositories,Spring Mvc,Spring Boot,Spring Data,Spring Restcontroller,Spring Repositories,我是Spring的新用户,我想用Hibernate PostGreSQL和Spring Boot开发一个RestFull服务。我试图学习Spring的文档,但是部署一个简单的服务有很多问题。 我不使用XML文件属性,而是使用Java类 以下是我的不同文件: persistencejpaconfig.java: package com.spring.configuration; import javax.sql.DataSource; import org.springframework.bea

我是Spring的新用户,我想用Hibernate PostGreSQL和Spring Boot开发一个RestFull服务。我试图学习Spring的文档,但是部署一个简单的服务有很多问题。 我不使用XML文件属性,而是使用Java类

以下是我的不同文件:

persistencejpaconfig.java:

package com.spring.configuration;

import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.Database;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;

@Configuration
public class PersistenceJPAConfig {
  @Bean
  public DataSource dataSource() {
    DriverManagerDataSource driver = new DriverManagerDataSource();
    driver.setDriverClassName("org.postgresql.Driver");
    driver.setUrl("jdbc:postgresql://localhost:5432/test");
    driver.setUsername("test");
    driver.setPassword("test");
    return driver;
  }

  @Bean
  public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    vendorAdapter.setDatabase(Database.POSTGRESQL);
    vendorAdapter.setGenerateDdl(true);

    LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
    factory.setJpaVendorAdapter(vendorAdapter);
    factory.setPackagesToScan(getClass().getPackage().getName());
    factory.setDataSource(dataSource());

    return factory;
  }

  @Bean
  @Autowired
  public JpaTransactionManager transactionManager() {
    JpaTransactionManager txManager = new JpaTransactionManager();
    txManager.setEntityManagerFactory(entityManagerFactory().getObject());

    return txManager;
  }
}
我有一个经典模型,下面是存储库:

package com.spring.persistence.repositories;

import com.spring.persistence.model.ApplicationUser;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
@Qualifier(value = "applicationUserRepository")
public interface ApplicationUserRepository extends JpaRepository<ApplicationUser,Long>{

}
它可能缺少很多东西(注释、初始值设定项、代码),但我在这里学习,任何建议都可以帮助我

谢谢你的回答

这个项目将允许你用更少的样板代码来实现你的目标

遵循该指南,该指南演示了如何以绝对最小的配置配置SpringBoot+SpringDataREST

一旦您有了基本的了解,就可以添加更多的功能来满足您的业务需求


详细信息见

此代码有什么问题?您是否面临任何例外情况?如果是,则提供异常stacktrace。粘贴stacktrace和主spring引导应用程序类如何。我们无法帮助您了解您提供的信息。
package com.spring.persistence.service;

import com.spring.persistence.model.ApplicationUser;
import com.spring.persistence.repositories.ApplicationUserRepository;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Transactional
public class ApplicationUserService {

    private final ApplicationUserRepository applicationUserRepository;

    @Autowired
    public ApplicationUserService(ApplicationUserRepository applicationUserRepository) {
      this.applicationUserRepository = applicationUserRepository;
    }


    public ApplicationUser createUser(String username, String type, String country)
    {
        ApplicationUser user = new ApplicationUser(username,type,country);
        return applicationUserRepository.saveAndFlush(user);
    }
    public List<ApplicationUser> getAllUser()
    {
      return applicationUserRepository.findAll();
    }
    public ApplicationUser getUser(Long id)
    {
        ApplicationUser user = null;
        if(id != null)
        {
            user = applicationUserRepository.findOne(id);
        }
        return user;
    }
    public boolean deleteUser(Long id)
    {
        if(id != null)
        {
            try{
                applicationUserRepository.delete(id);
                return true;
            }
            catch(IllegalArgumentException ex)
            {
                ex.printStackTrace();
                return false;
            }
        }
        else
        {
            System.out.println("Id is null");
            return false;
        }   
    }
}
@RestController
@RequestMapping(value = "/applicationuser")
public class ApplicationUserController {

    @Autowired
    private ApplicationUserService applicationUserService;

    @RequestMapping(value="/",method = RequestMethod.GET)
    @ResponseBody
    public ApplicationUser index()
    {
        return applicationUserService.createUser("test", "test", "test");

    }

}