`

springboot+hibernate5+idea2017+maven3

阅读更多

本案例的开发环境:idea2017+maven3+springboot1.5.9+hibernate5

 

一、入门程序(参考spring官网)

第一步:创建一个Maven的web工程

第二步:在pim.xml文件中添加如下配置

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

 第三步:创建一个SampleController类

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@Controller
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}

第四步:运行SampleController 类的main程序

第五步:打开浏览器,输入http://localhost:8080/,回车,即可在页面上看到Hello World!

 二、返回jsp视图

第一步:

在application.properties文件中配置如下信息:

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.mvc.view.prefix=/
# 配置jsp文件的后缀
spring.mvc.view.suffix=.jsp

 表示访问webapp目录下面的以jsp为后缀的视图

第二步:

在pom.xml文件中配置tomcat和jsp的依赖:

<!--添加 tomcat 的支持-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- servlet 依赖 -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- 添加 JSTL 支持 -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
</dependency>

 第三步:

在控制层的类SampleController中添加如下代码:

@RequestMapping("/toJSP")
public String toPage(Model model) {
    System.out.println("3456789");
model.addAttribute("msg","欢迎来到异次元世界");
    return "index";//返回视图
}

第四步:编辑视图

新建一个index.jsp页面

<html>
<body>
<h2>Hello World!</h2>
<h3>${msg}</h3>
</body>
</html>

第五步:运行

运行SampleController 类的main程序

第六步:访问

打开浏览器,输入http://localhost:8080/toJSP,回车,即可在页面上看到信息,但是出现了中文乱码

第七步:修改编码

在application.properties文件中,加入如下编码配置:

#Spring Boot中的乱码和编码问题
spring.http.encoding.force=true

 重新运行main程序,刷新页面,会发现,中文正常显示

 三、扫描包下面的controller

第一步:

在程序入口类上面加注解@SpringBootApplication、@ComponentScan:

 

@Controller//让当前启动入口也成为控制层,如果不想让当前入口也成为控制层,当前程序入口类可以不加Controller注解
@SpringBootApplication
@ComponentScan("com.yunlian")//包名:扫描这个包下面的加了@Controller注解的类及其子包的加了@Controller注解的类,或者加了Service注解等其他组件注解的类
public class SpringBootController {
    
    public static void main(String[] args) throws Exception {
        //程序启动入口,一般该入口文件不写成控制层
        SpringApplication.run(SpringBootController.class, args);
    }
    @RequestMapping("/hello")
    @ResponseBody//返回json数据
    String home() {
        return "Hello World!";
    }
}

  

 第二步:

 

在相应的控制层的类上面加注解@Controller:

package com.yunlian.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.UUID;

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/hello")
    @ResponseBody//返回json数据
    String home() {
        return "Hello World    !";
    }
}

 完成上面两步操作即可实现扫描某个包下面的所有的控制层类

 四、注入业务层bean

如,在UserController类中注入UserService。

第一步:创建UserService类

创建一个业务层类UserService.java,并在这个业务类上加上注解@Service:

package com.yunlian.service;

import com.yunlian.entity.User;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    public User getUser(){
        User user = new User();
        user.setId("1");
        user.setUserName("张三");
        user.setPassword("123456789");
        return user;
    }
}

 第二步:业务类bean注入

在控制层中通过@Autowired注解注入业务类bean

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/hello")
    @ResponseBody//返回json数据
    String home() {
        return "Hello World    !";
    }

    @RequestMapping("/get")
    @ResponseBody
    public User getUser() {
       User user = userService.getUser();
       return user;
    }
}

 业务类需要必须在@ComponentScan("com.yunlian")注解所扫描的包中

 五、集成hibernate5

第一步:配置pom.xml文件

配置jpa依赖和MySQL依赖:

 

    <!--jpa dependency-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!--mysql dependency-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.43</version>
    </dependency>

 

第二步:配置application.properties

在application.properties文件中添加数据库连接的相关信息配置

 

########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/spring-boot
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#spring.datasource.max-active=20
#spring.datasource.max-idle=8
#spring.datasource.min-idle=8
#spring.datasource.initial-size=10
########################################################
### Java Persistence Api
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update

# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5Dialect

 

第三步:创建实体类User

 

package com.yunlian.entity;

import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "user")
public class User implements Serializable {
    private String id;
    private String userName;
    private String password;

    public User() {
    }

    @Id
    public String getId() {
        return id;
    }
    @Column
    public void setId(String id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }
    @Column
    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }
    @Column
    public void setPassword(String password) {
        this.password = password;
    }

}
 

 

第四步:创建dao层接口UserDao

 

package com.yunlian.dao;

import com.yunlian.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserDao extends JpaRepository<User,String> {
}
 

 

第五步:创建业务层接口UserService

 

package com.yunlian.service;

import com.yunlian.entity.User;

public interface UserService {

    User getUser();

    void save(User user);
}
 

 

第六步:创建业务接口实现类

创建一个业务类UserServiceImpl实现业务接口,并将dao层的bean注入到业务实现类UserServiceImpl中:

 

package com.yunlian.service.impl;

import com.yunlian.dao.UserDao;
import com.yunlian.entity.User;
import com.yunlian.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;
    @Override
    public User getUser() {
       User user =  userDao.findOne("09e7b25c-12f7-43ea-a553-fb34189fce17");
       return user;
    }

    @Override
    public void save(User user) {
        User u = userDao.save(user);
        return;
    }
}

 

第七步:控制层注入业务bean

在UserController类中注入业务bean:

 

package com.yunlian.controller;

import com.yunlian.entity.User;
import com.yunlian.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.UUID;

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/hello")
    @ResponseBody//返回json数据
    String home() {
        return "Hello World    !";
    }

    @RequestMapping("/get")
    @ResponseBody
    public User getUser() {
       User user = userService.getUser();
       return user;
    }
    @RequestMapping("/save")
    public String save(Model model){
        User user = new User();
        user.setUserName("李四");
        user.setPassword("123456789");
        user.setId(UUID.randomUUID().toString());
        userService.save(user);
        model.addAttribute("msg","添加数据哇啊");
        return "index";
    }
}
 

 

第八步:程序main入口类的注解配置

找到main程序入口类,在上面加上实体类、持久类的注解@EnableJpaRepositories、@EntityScan

 

package com.yunlian.controller;

import com.yunlian.entity.User;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.stereotype.*;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

@Controller//让当前启动入口也成为控制层,如果不想让当前入口也成为控制层,当前程序入口类可以不加Controller注解
@SpringBootApplication
@ComponentScan("com.yunlian")//包名:扫描这个包下面的加了@Controller注解的类及其子包的加了@Controller注解的类,或者加了Service注解等其他组件注解的类
@EnableJpaRepositories("com.yunlian.dao") // JPA扫描该包路径下的Repositorie
@EntityScan("com.yunlian.entity") // 扫描实体类
public class SpringBootController {

    public static void main(String[] args) throws Exception {
        //程序启动入口,一般该入口文件不写成控制层
        SpringApplication.run(SpringBootController.class, args);
    }
    @RequestMapping("/hello")
    @ResponseBody//返回json数据
    String home() {
        return "Hello World!";
    }

    @RequestMapping("/user")
    @ResponseBody
    public User getUser() {
        User user = new User();
        user.setId("1");
        user.setUserName("张三111");
        user.setPassword("123456789");
        return user;
    }

    @RequestMapping("/toJSP")
    public String toPage(Model model) {
        System.out.println("3456789");
        model.addAttribute("msg","欢迎来到异次元世界");
        return "index";//返回视图
    }
}
 

 

第九步:运行访问

运行main程序,启动好后,打开浏览器根据配置的地址访问即可

 

六、配置springboot日志文件

第一步:配置pom.xml

    <!--spring boot log4j dependency-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j</artifactId>
      <version>1.3.8.RELEASE</version>
    </dependency>

 

 

第二步:添加log4j.properties文件

log4j.properties文件的内容如下:

log4j.rootLogger=info,ServerDailyRollingFile,stdout

log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=D://test/test.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c] - %m%n
log4j.appender.ServerDailyRollingFile.Append=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n

 

 

最终的application.properties文件的内容为:

# 配置jsp文件的位置,默认位置为:src/main/webapp
spring.mvc.view.prefix=/
# 配置jsp文件的后缀
spring.mvc.view.suffix=.jsp

#Spring Boot中的乱码和编码问题
spring.http.encoding.force=true

#除了常见的 http encoding,Spring Boot中还可以控制这些编码
#banner.charset
#spring.freemarker.charset
#server.tomcat.uri-encoding
#spring.mail.default-encoding
#spring.messages.encoding
#spring.thymeleaf.encoding

########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/spring-boot
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#spring.datasource.max-active=20
#spring.datasource.max-idle=8
#spring.datasource.min-idle=8
#spring.datasource.initial-size=10
########################################################
### Java Persistence Api
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update

# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5Dialect

 

 


 
 

 

 

  • 大小: 15 KB
  • 大小: 143.4 KB
0
0
分享到:
评论

相关推荐

    springboot+hibernate+thymeleaf分页增删改查demo

    3. 检查pom.xml或build.gradle文件,确认所有依赖项已正确配置,特别是SpringBoot、Hibernate和Thymeleaf的相关依赖。 4. 在src/main/resources目录下配置application.properties或application.yml,设置数据库连接...

    spring+springmvc+hibernate4+easyui+maven完整项目搭建

    5. 配置 Hibernate,包括数据库连接、SessionFactory 和实体类映射。 6. 编写 Service 和 Dao 层,实现业务逻辑和数据库操作。 7. 使用 EasyUI 创建前端页面,定义数据展示和交互逻辑。 8. 测试并调试项目,确保各...

    Maven项目ssh Struts2+hibernate+Spring+maven框架.zip

    SSH(Struts2、Hibernate、Spring)是一个经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。在这个Maven项目中,这三个框架与Maven构建工具一起使用,以实现更好的依赖管理和项目构建流程。下面将详细...

    Spring+SpringMVC+Hibernate+mysql+maven多模块

    标题 "Spring+SpringMVC+Hibernate+mysql+maven多模块" 涉及的是一个常见的Java Web开发技术栈,这个组合常用于构建大型、复杂的Web应用程序。以下是对这些技术及其结合方式的详细解释: 1. **Spring框架**:Spring...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门012

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的开源框架和技术,它们在构建高效、可维护的企业级应用程序方面发挥着关键作用。本篇将详细介绍这些技术及其整合入门的知识点。 **Struts2** 是...

    Springboot+jpa+mysql在maven下整合

    本文将详细介绍如何在Maven环境下整合Spring Boot、JPA和MySQL。 首先,我们需要创建一个新的Spring Boot项目。在IntelliJ IDEA中,选择“New Project”,然后选择“Spring Initializr”。在配置页面,填入项目名、...

    springboot2+activiti 7 -- maven工程依赖配置和创建表结构

    在本文中,我们将深入探讨如何将Spring Boot 2与Activiti 7整合,以及如何配置相关的Maven工程和创建数据库表结构。Activiti是一个流行的开源工作流引擎,它提供了强大的业务流程自动化能力,而Spring Boot则简化了...

    纯学习,开发一个SpringBoot+vue前后端分离markhub博客项目(附代码)

    - 构建工具:Maven或Gradle管理SpringBoot项目依赖,Webpack或Vue CLI用于Vue项目的构建。 8. **部署与运行**: - 使用Docker容器化技术部署应用,简化环境配置,提高可移植性。 - 服务器环境如Tomcat或Jetty...

    综合spring mvc + spring + hibernate + bootstrap开发图书管理系统

    在本项目中,我们利用了Java技术栈中的四个核心组件:Spring MVC、Spring、Hibernate以及Bootstrap,构建了一个全面的图书管理系统。这个系统旨在提供高效、用户友好的图书管理功能,涵盖了从图书入库、检索到借阅、...

    Maven+Hibernate+mysql增删改查

    本示例项目“Maven+Hibernate+mysql增删改查”旨在帮助初学者掌握这三者相结合的基础应用。下面将详细介绍这三个核心组件以及它们如何协同工作。 **Maven** 是一个项目管理和综合工具,主要负责构建、依赖管理和...

    SpringMVC+Hibernate+Spring+maven框架搭建

    1. 创建Maven项目:首先,我们需要在IDE(如IntelliJ IDEA或Eclipse)中创建一个新的Maven项目,定义项目的基本信息和依赖管理。 2. 添加依赖:在pom.xml文件中,我们需要添加Spring MVC、Hibernate、Spring以及...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频017

    在"Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频017"中,可能涵盖以下内容: 1. **环境配置**:安装和配置Java开发环境、Maven、Eclipse或IntelliJ IDEA等开发工具。 2. **项目创建**:使用Maven创建一个...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频010

    在视频教程“Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频010”中,你可能会学习到以下内容: 1. **环境搭建**:如何配置开发环境,包括安装JDK、设置IDE(如Eclipse或IntelliJ IDEA)、配置Maven仓库等。...

    idea中Maven环境Spring+SpringMVC+Hibenate整合

    【描述】在IntelliJ IDEA(简称Idea)这个强大的Java开发工具中,Maven环境下的Spring、SpringMVC和Hibernate框架整合是一项常见的开发任务,用于构建高效、模块化的Web应用程序。这些框架的集成可以实现数据持久化...

    idea下spring+hibernate模块

    标题 "idea下spring+hibernate模块" 描述了一个基于IntelliJ IDEA开发环境的项目模板,该模板已经集成了Spring和Hibernate框架,适合用于快速构建Java Web应用程序。这个项目预设了必要的配置和代码结构,开发者只需...

    Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤

    在本文中,我们将详细介绍如何使用IntelliJ IDEA (Idea) 和 Maven 来构建一个基于SSH(Struts2 + Hibernate5 + Spring5)的开发环境。这个环境将为Java Web项目提供一个强大的基础架构,方便进行业务逻辑处理、数据...

    Spring+SpringMVC+Hibernate非注解版

    【描述】"Spring+SpringMVX+Hibernate+Mysql在idea中Maven环境下配置" 提到了将这三大框架集成到IntelliJ IDEA(IDEA)开发环境中,并利用Maven作为项目构建工具。Maven简化了项目的构建过程,通过管理依赖关系,...

    基于springboot + vue 的crm管理系统.zip

    - 构建工具如Maven或Gradle用于SpringBoot应用的构建,Webpack或Vue CLI用于Vue.js项目的打包和部署。 5. **部署与运行**: - SpringBoot应用可以通过命令行或集成开发环境启动,生成的jar文件可以在任何支持Java...

    spring mvc+spring+hibernaate+bootstrap+maven通用后台部门员工管理系统.zip

    这是一个基于Java技术栈的通用后台管理系统,主要使用了Spring MVC、Spring、Hibernate、Bootstrap和Maven等技术。这些技术在IT行业中广泛应用于企业级Web应用开发,构建高效、可维护的系统。下面将分别详细解释这些...

    用maven整合struts+spring+hibernate

    "用maven整合struts+spring+hibernate"这个主题,就是关于如何将这三大核心框架——Struts、Spring和Hibernate——集成到一个项目中的实践教程。Struts提供了MVC(Model-View-Controller)架构,Spring是全面的后端...

Global site tag (gtag.js) - Google Analytics