本文使用我之前的博文项目作为原型,改成spring-boot项目,并使用spring-data-jpa替代mybatis作为dao实现。
原项目参考,Spring+SpringMVC+MyBatis+Maven框架整合:
http://jisonami.iteye.com/blog/2295345
由于spring-boot的jar项目暂时不支持jsp,因此本项目依旧是一个war项目,下一篇文章会介绍使用thymeleaf模板替换jsp页面后的jar项目。
本文主要记录以下几点:
一、spring-boot约定的目录结构
二、Maven需要引入的jar
三、application.properties的相关配置
四、spring-data-jpa的简单使用
一、spring-boot约定的目录结构
对于这个目录结构而言,Application.java是spring的Java配置类,里面包含spring-boot应用的main()方法,在spring-boot的jar项目中会执行该方法
spring目前支持三种元数据的配置,即xml、Java注解、Java配置类,而spring-boot推荐使用Java配置类来完成元数据的配置。
Jisonami2目前的目录结构是这样的:
Jisonami2Application.java是spring-boot的入口类,包含配置信息和main()方法
@SpringBootApplication
@Controller
public class Jisonami2Application {
@RequestMapping("/")
public String index(){
return "../../index";
}
public static void main(String[] args) {
SpringApplication.run(Jisonami2Application.class, args);
}
}
@SpringBootApplication其实是以下三个注解的合并,取其默认值时直接使用@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@ComponentScan
目前本项目是war项目,所以Jisonami2Application需要继承SpringBootServletInitializer类,并实现如下方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Jisonami2Application.class);
}
二、Maven需要引入的jar
在maven中有两种方式可以配置成spring-boot项目,本文使用最简单的直接继承spring-boot-starter-parent成为spring-boot项目。
通过在spring-boot项目的pom.xml中引入一些spring-boot-starter的依赖,可以简化项目的配置。
maven的pom.xml如下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jisonami</groupId>
<artifactId>Jisonami2</artifactId>
<packaging>war</packaging>
<version>0.1.1</version>
<name>Jisonami Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 直接继承spring-boot-starter-parent成为spring-boot项目 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<properties>
<!-- 使用了lambda表达式,覆盖默认的java版本,默认为1.6 -->
<java.version>1.8</java.version>
<!-- 之前用hibernate5.1.0.Final生成的表,使用spring-boot-starter-data-jpa默认引入的hibernate4.3.11会报sql错 -->
<hibernate.version>5.1.0.Final</hibernate.version>
<oracle14.version>10.2.0.4.0</oracle14.version>
<taglibs.standard.version>1.1.2</taglibs.standard.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- maven打war包需要,spring boot的jsp项目必须是war项目,jar项目不支持jsp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- 引入oracle数据库jdbc驱动包 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>${oracle14.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- jstl依赖包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>${taglibs.standard.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- spring boot项目编译插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
三、application.properties的相关配置
application.properties是spring-boot项目的配置文件,spring-boot内置了很多默认配置信息,在application.properties文件中我们可以覆盖spring-boot的默认配置信息
目前本项目只需要配置spring-mvc的jsp跳转的前缀和后缀
#指定项目上下文路径
#server.context-path=/Jisonami2
#配置jsp视图的前缀和后缀
spring.mvc.view.prefix=/WEB-INF/content/
spring.mvc.view.suffix=.jsp
四、spring-data-jpa的简单使用
1、首先需要配置数据源
在Jisonami2Application.java中加入如下方法,配置数据源
@Bean
@ConfigurationProperties(locations="classpath:DBConfig.properties", prefix="datasource")
public DataSource dataSource(){
return DataSourceBuilder.create().build();
}
DataSourceBuilder源码里面默认配置如下,即有4种默认数据源可用:(上面在DBConfig.properties配置的是dbcp的数据源)
private static final String[] DATA_SOURCE_TYPE_NAMES = { "org.apache.tomcat.jdbc.pool.DataSource", "com.zaxxer.hikari.HikariDataSource", "org.apache.commons.dbcp.BasicDataSource", "org.apache.commons.dbcp2.BasicDataSource" };
DBConfig.properties的配置:
datasource.driverClassName=oracle.jdbc.driver.OracleDriver
datasource.url=jdbc:oracle:thin:@192.168.75.130:1521:orcl
datasource.username=jison
datasource.password=jison
2、以UserRepository为例,简单介绍spring-data-jpa的使用
UserRepository的代码如下:
public interface UserRepository extends CrudRepository<User, String>{
public User findByName(String name);
public User findByNameAndPassword(String name, String password);
}
UserRepository继承了CrudRepository接口与,CrudRepository接口里面定义了一些常用的方法,去掉注释,看其源码定义了如下方法:
<S extends T> S save(S entity);
<S extends T> Iterable<S> save(Iterable<S> entities);
T findOne(ID id);
boolean exists(ID id);
Iterable<T> findAll();
Iterable<T> findAll(Iterable<ID> ids);
long count();
void delete(ID id);
void delete(T entity);
void delete(Iterable<? extends T> entities);
void deleteAll();
好了,spring-data-jpa自动帮我们生成这些方法的实现的,我们只需要在service里调用对应方法实现对应的逻辑就行了。
spring-data-jpa具体用法自行google
spring-data-jpa官方sample工程:
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-jpa
至此,本项目就搭建完成了,更详细的代码参考我的github项目Jisonami的0.1.1版本:
https://github.com/jisonami/Jisonami2/tree/0.1.1
- 大小: 12.5 KB
- 大小: 18.7 KB
分享到:
相关推荐
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
java运行依赖jar包
2. **依赖管理**:在Spring Boot的父项目中,会包含Spring Boot的核心依赖及其推荐版本,如Spring框架、Spring Boot Starter、Web、Data JPA等。这样,子模块可以直接引用这些依赖,而无需指定具体版本,简化了版本...
3. **数据访问**:"spring-boot-sample-data-jpa"和"spring-boot-sample-data-mongodb"分别演示了如何与关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB)集成,使用JPA和Spring Data进行数据操作...
例如,`spring-boot-starter-web`用于Web开发,`spring-boot-starter-data-jpa`用于数据库访问。 2. **内嵌Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,这意味着你可以无需额外配置即可...
<artifactId>spring-boot-starter-data-jpa <version>1.0.2.RELEASE ``` (2) 配置数据源:在application.properties或application.yml文件中配置数据库连接信息,如数据库URL、用户名、密码等。 ```properties ...
通过深入研究这个源码包,开发者不仅可以理解Spring Boot的内部工作原理,还可以学习到如何设计和实现类似的框架,提升自己的Java和Spring技术栈能力。同时,对于遇到的问题,可以通过查看源码找到解决思路,有助于...
标题“spring-boot-sample-data-jpa”表明我们正在讨论一个基于Spring Boot的应用程序示例,它使用了Spring Data JPA来处理数据库操作。Spring Boot简化了Java应用的初始设置,而Spring Data JPA则是Spring框架的一...
比如,如果我们需要添加数据库支持,只需在`pom.xml`或`build.gradle`文件中引入相应的起步依赖,如`spring-boot-starter-data-jpa`,Spring Boot就会自动配置好相关组件,无需编写大量配置代码。 在"spring-boot-...
1. 使用`spring init --dependencies`命令初始化一个新的Spring Boot项目,你可以指定需要的依赖,如Web、Data JPA等。 2. 初始化完成后,会生成一个`build.gradle`文件,这是Gradle构建工具的配置文件,你可以使用`...
6. **条件注解**:Spring Boot使用`@Conditional`系列注解,如`@ConditionalOnClass`、`@ConditionalOnMissingBean`等,使得配置的启用基于特定条件,增加了代码的灵活性。 7. **属性绑定**:`@Value`和`@...
java运行依赖jar包
Spring Boot的众多启动器(Starter)之一就是spring-boot-starter-data-jpa,它为使用Java持久化API(JPA)提供了方便的依赖管理和自动配置。 JPA是Java持久化API的缩写,是一个Java持久层规范,用于对象关系映射,...
这涵盖了从项目的初始化、Controller 的编写、服务层的设计到与数据库的交互等多个方面,是学习和实践 Spring Boot Web 开发的一个很好的起点。通过这个项目,你可以深入理解 Spring Boot 的自动化配置、RESTful API...
在Spring Boot项目中,可以通过starters来快速引入相关依赖,例如使用`spring-boot-starter-data-jpa` starter,开发者能够直接获得一个配置好的数据访问环境。 Spring Data JPA 的核心概念之一是Repositories,它...
《Spring Boot 2.4 RESTful CRUD 实战详解》 在现代Web开发中,Spring Boot以其简洁、高效的特点,已经...通过尚硅谷B站教程的辅助,学习者将更深入地了解Spring Boot的新特性和变化,为后续的Web开发奠定坚实基础。
通过`spring-boot-starter-data-jpa`,开发者可以快速集成JPA并使用Hibernatet进行ORM操作。在源码中,相关的配置和初始化逻辑位于`org.springframework.boot.autoconfigure.data`包下。 对于测试,Spring Boot提供...