我在Cloudfoundry中部署带有服务的应用程序时遇到问题。已经一个星期了,我找不到解决方案。您能告诉我我的代码有什么问题吗?顺便说一句,我可以在没有服务的情况下进行部署,但是在绑定服务并尝试连接到数据库时会挂起部署。我在部署中使用spring sts。我希望有人可以帮助我解决这个问题。
这是我的参考顺便说一句:https : //github.com/jwlayug/spring-cloud和https://github.com/jwlayug/spring-cloud/tree/master/spring-service- connector
我的密码
@Configuration @ComponentScan @EnableAutoConfiguration public class Application extends AbstractCloudConfig { @Bean public DataSource inventoryDataSource() { return connectionFactory().dataSource("jwlpostgre"); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @Entity class User { @Id @GeneratedValue private long id; private String name; public User() { } public User(String name) { this.name = name; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return this.name; } } interface UserRepository extends JpaRepository<User, Long> { } @Controller class MyController { @Autowired UserRepository userRepository; @RequestMapping(value = "/") public String sample(Model model) { model.addAttribute("sample", "Sample"); userRepository.save(new User("a")); userRepository.save(new User("b")); userRepository.save(new User("c")); model.addAttribute("findall", userRepository.findAll()); for (User user : userRepository.findAll()) { System.out.println(user.getName()); } return "sample"; } }
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.demo</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot</name> <description>Demo project</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.0.2.RELEASE</version> </parent> <repositories> <repository> <id>org.springframework.maven.milestone</id> <name>Spring Maven Milestone Repository</name> <url>http://repo.spring.io/milestone</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.3-1101-jdbc41</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-service-connector</artifactId> <version>0.9.2</version> </dependency> <!-- If you intend to deploy the app on Cloud Foundry, add the following --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>cloudfoundry-connector</artifactId> <version>0.9.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <properties> <start-class>demo.Application</start-class> <java.version>1.7</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
如果您没有多个数据库数据源,则无需添加该bean或为其命名。
确保您排除数据源自动配置,因为这会导致问题。
package com.mycompany.myapp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan @EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
使用当前版本对我有用。更新到最新和最伟大的。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gopivotal</groupId> <artifactId>redisstore</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>myapp</name> <description>myapp</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.1.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgres-driver.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-spring-service-connector</artifactId> <version>1.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-cloudfoundry-connector</artifactId> <version>1.0.0.RELEASE</version> </dependency> </dependencies> <!-- Transitively bring in the Spring IO Platform Bill-of-Materials `pom.xml` --> <dependencyManagement> <dependencies> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>1.0.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <repositories> <repository> <id>org.springframework.maven.milestone</id> <name>Spring Maven Milestone Repository</name> <url>http://repo.spring.io/milestone</url> </repository> </repositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <start-class>com.mycompany.myapp.Application</start-class> <java.version>1.7</java.version> <postgres-driver.version>9.0-801.jdbc4</postgres-driver.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>