Spring mvc Spring Boot Hibernate RestFull服务PostgreSQL
我是Spring的新用户,我想用Hibernate PostGreSQL和Spring Boot开发一个RestFull服务。我试图学习Spring的文档,但是部署一个简单的服务有很多问题。 我不使用XML文件属性,而是使用Java类 以下是我的不同文件: persistencejpaconfig.java: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
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");
}
}