现有前面迁移到Spring-boot

  做为一个刚转java不到两个月的.net 程序员,第一个拿到的任务就是把一个以前的eclipse项目迁移到spring-boot,我的内心是崩溃的。eclipse我都还用的不是很熟,spring也才是限于能看懂,对于那一大堆的配置文件更是,更是一脸懵逼,好吧,工作还是得做。记录下整个过程中踩到的各式各样的坑。

  第一步加了maven做项目构建,唉,都是现学现卖。在转换过程中出现了各种错误。

    a).net.sf.json-lib引用报错,解决方案是指定JDK版本

    

    b) spring配置的 xml文件一直报错:发现时xml中写的spring版本和实际maven安装的不一致,maven暗转的是spring-4.39,xml中写的是4.0,

    

    c)"Cannot change version of project facet Dynamic web module to 2.5",这个主要是两个地方版本不一致导致的,一个是web.xml

      

    另一个地方是主目录下.setting 文件夹下的“org.eclipse.wst.common.project.facet.core.xml”文件里面的jst.web的版本,这两个要保持一致

      

  中间还碰到过一个问题,忘了是啥,解决方案是添加spring-tx的依赖,怕又碰到

 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.3.7.RELEASE</version>
</dependency>  

下面是转springboot的基本步骤和踩到的坑

  1.修改配置文件,增加springboot的配置

  添加继承的parent

 <!--继承spring boot的parent--><parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
  </parent>
  <!--添加spring boot  maven 插件用做项目编译-->
   <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix></classpathPrefix>
                    <mainClass>com.seaskylight.kaow.Application</mainClass><!--指定启动文件-->
                </manifest>
            </archive>
        </configuration>
    </plugin>

  添加依赖

    <dependency>
            <groupId>org.springframework.boot</groupId><!--web项目需要的依赖-->
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId><!--单元测试需要的依赖-->
            <scope>test</scope>
        </dependency>

  2.编写Application,完成上述这些操作基本上就可以讲项目作为一个springboot项目进项启动了,当然了可能会报一大堆的错误。

@EnableAutoConfiguration
@ComponentScan
@SpringBootApplication
public class Application {

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

 整合mybatis到springboot

  1.添加依赖  

<!--springboot mybatis的依赖项-->
<dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.0.0</version>
</dependency>

  

<!--jdbc的驱动,这个是必须有的,不然会抛驱动不能加载的异-->
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
</dependency>

  2.定义datasource ,sqlSessionFactory,这个需要定义到刚刚的Application中,修改Applicaiton文件  ,配置好数据库,项目应该是能够正常启动了

@EnableAutoConfiguration
@ComponentScan
@SpringBootApplication
public class Application {

  //DataSource配置
    @Bean
    @ConfigurationProperties(prefix="spring.datasource")
    @Primary
    public DataSource dataSource() {
        //DataSource dataSource = new DataSource();
        return DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build();
        //com.mchange.v2.c3p0.ComboPooledDataSource
        //return new org.apache.tomcat.jdbc.pool.DataSource();
    }

    //提供SqlSeesion
    @Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {

        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());

        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/com/seaskylight/kaow/dao/*.xml"));

        return sqlSessionFactoryBean.getObject();
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

  这里的线程池用的是c3p0,需要添加对应的依赖,并且在springboot的配置文件中配置好参数  

<dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
</dependency>

  配置文件  

spring.datasource.jdbcUrl=jdbc:mysql://localhost:3306/zxtk?characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;zeroDateTimeBehavior=convertToNull
spring.datasource.user=user
spring.datasource.password=password
spring.datasource.driverClass=com.mysql.jdbc.Driver
spring.datasource.initialPoolSize=5
spring.datasource.minPoolSize=5
spring.datasource.maxPoolSize=50
spring.datasource.maxIdleTime=600
spring.datasource.acquireIncrement=5
spring.datasource.acquireRetryDelay=1000
spring.datasource.acquireRetryAttempts=30
spring.datasource.checkoutTimeout=2000
spring.datasource.maxStatements=50
spring.datasource.idleConnectionTestPeriod=60
spring.datasource.preferredTestQuery=SELECT SYSDATE()
spring.datasource.numHelperThreads=3

  因为这个项目是个web项目,所以有一些静态资源。springboot默认的静态资源是放在/resources,/resources/static,等默认文件夹下的(还有几个忘记了),这里我是在resources下面建了个static文件夹,然后再将静态资源移动到改文件夹下。这样就能进行静态文件的访问。

  

      

时间: 2024-11-03 05:29:15

现有前面迁移到Spring-boot的相关文章

Spring Boot 2.0 迁移指南

![img](https://mmbiz.qpic.cn/mmbiz_jpg/1flHOHZw6Rs7yEJ6ItV43JZMS7AJWoMSZtxicnG0iaE0AvpUHI8oM7lxz1rRsmaa4IfbolVRG2WQwhXrchmVWS8Q/640?tp=webp&wxfrom=5&wx_lazy=1&wx_co=1) ### 前提 本文档将帮助您把应用程序迁移到 Spring Boot 2.0. ### 在你开始之前 首先,**Spring Boot 2.0需要Ja

翻译 Spring Boot How To

Spring Boot How To 1. 简介 本章节将回答一些常见的"我该怎么做"类型的问题,这些问题在我们使用Spring Boot时经常遇到.这绝不是一个详尽的列表,但它覆盖了很多方面. 如果遇到一个特殊的我们没有覆盖的问题,你可能想去查看stackoverflow.com 2. Spring Boot应用 2.1. 解决自动配置问题 Spring Boot自动配置总是尝试尽最大努力去做正确的事,但有时候会失败并且很难说出失败原因. 在每个Spring Boot Applica

spring boot教程 网盘下载

教程下载地址:https://u18103887.ctfile.com/fs/18103887-309551343 I. Spring Boot文档1. 关于本文档2. 获取帮助3. 第一步4. 使用Spring Boot5. 了解Spring Boot特性6. 迁移到生产环境7. 高级主题II. 开始8. Spring Boot介绍9. 系统要求9.1. Servlet容器10. Spring Boot安装10.1. 为Java开发者准备的安装指南10.1.1. Maven安装10.1.2.

Spring Boot 必须先说说 Spring 框架!

现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下. Spring Boot 的背景了解 Spring Boot 必须先说说 Spring 框架! 在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两把利器:IOC 和 AOP,I

毕设利器 SSM到Spring Boot 从零开发校园商铺平台

第1章 开发准备本章包含课程介绍,同时讲解开发网站所需要准备的事情,并且带领大家从零开始搭建一个Maven Web. 第2章 项目设计和框架搭建本章主要先带领大家过一遍项目1.0的大致功能点,并依据功能点划分,设计出合理的实体类以及表来.此外,本章还要完成搭建SSM框架底子的任务,并从后到前完成一个功能点的Dao.Service.Controller的开发与UT验证 第3章 Logback配置与使用本章将讲解logback相关的配置,并验证,运用到程序当中 第4章 店铺注册功能模块本章将开始项目

将Spring Boot应用程序迁移到Java9:兼容性

将 Spring Boot 应用程序迁移到 Java 9:兼容性 随着 Java 9 的到来,关于如何迁移应用程序以使用模块系统有很多的讨论.遗憾的是,大多数文章的焦点都集中于简单的 Hello World 程序上.或者更糟的是,对于 Spring 应用程序,示例应用程序使用传统做法 - 例如使用 XML 作为示例. 本文的目的旨在通过对 Spring Boot 程序提供逐步的迁移指南来纠正这一点,本文所使用的示例程序是 Spring Pet clinic . 使用 Java 9 主要有两个步骤

阿里P9告诉你 Spring Boot 2.0正式发布,升还是不升呢?

Spring帝国Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验.在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词,那么Spring为什么能够在众多开源框架中脱颖而出,成为业内一致认可的技术解决方案呢?我们不妨从最初的Spring Framework开始,看看它为什么能够横扫千军,一统江湖! 挑战权威,一战成名 2004年3月,Spring的第一个版本以及其创始人Rod John

Spring Boot 官方文档入门及使用

个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念,请先移步上一篇文章 Spring Boot 学习.本篇原本是为了深入了解下Spring Boot而出现的. 另外,Spring Boot 仍然是基于Spring的,建议在赶完工之后深入学习下Spring,有兴趣可以看看我的 Spring 4 官方文档学习(十一)Web MVC 框架 .欢迎探讨,笑~

Spring Boot工程发布到Docker

先聊聊闲话 搞过企业级的application运维的同仁肯定深有感触,每个application的功能交叉错杂,数据交换就让人焦头烂额(当然这和顶层业务设计有关系), 几十个application发布,代码修改,打包,发布,再上dev/staging/prod三个代码版本,时刻要保证他们三个的环境依赖一致,比如jdk,webserver,appserver,安全设置,数据库等, 不然就导致程序跑不起来. 另一个问题,企业通常会按照功能将webserver,appserver,dbserver,f

【原创】Docker容器及Spring Boot微服务应用

Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复杂问题 传统项目实施过程中经常会出现“程序在我这跑得好好的,在你那怎么就不行呢?! ” 这是一个典型的应用场景,Docker image中包含了程序需要的所有的运行时依赖,比如java的程序,肯定要在image中包含jdk:比如Python的程序,肯定要在image中包含对应版本的Python解释器.Docker把整个运行时环境打包放到image中,所以搞定了环境依赖问题