2018年12月

js,css代码压缩
web站点需要对js,css代码进行压缩,打包,下面是利用maven进行打包压缩的配置

将压缩后的代码打入到war包中,并且压缩后的js,css文件名不变

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version> 
            <configuration>
                <warSourceExcludes>**/*.js,**/*.css</warSourceExcludes>
            </configuration>
        </plugin>
        <plugin>
            <!-- YUI Compressor Maven压缩插件 -->
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.3.0</version>
            <executions>
                <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- 读取js,css文件采用UTF-8编码 -->
                <encoding>UTF-8</encoding>
                <!-- 不显示js可能的错误 -->
                <jswarn>false</jswarn>
                <!-- 若存在已压缩的文件,会先对比源文件是否有改动  有改动便压缩,无改动就不压缩 -->
                <force>false</force>
                <!-- 在指定的列号后插入新行 -->
                <linebreakpos>-1</linebreakpos>
                <!-- 压缩之前先执行聚合文件操作 -->
                <preProcessAggregates>true</preProcessAggregates>
                <!-- 压缩后保存文件后缀 无后缀 -->
                <nosuffix>true</nosuffix>
                <!-- 源目录,即需压缩的根目录 -->
                <sourceDirectory>src/main/webapp/resource</sourceDirectory>
                <!-- 压缩js和css文件 -->
                <includes>
                    <include>**/*.js</include>
                    <include>**/*.css</include>
                </includes>
                <!-- 以下目录和文件不会被压缩 -->
                <excludes>
                    <exclude>**/*.min.js</exclude>
                    <exclude>**/*.min.css</exclude>
                </excludes>

            </configuration>
        </plugin>
    </plugins>

下面这个标签是对已经压缩过的文件不进行压缩

 <excludes>
 <exclude>**/*.min.js</exclude>
 <exclude>**/*.min.css</exclude>
 </excludes>

但是如果按照如下配置进行打包,那些在源文件中已经是.min结尾的js,css代码将不会打进war包

<configuration>
<warSourceExcludes>**/*.js,**/*.css</warSourceExcludes>
</configuration>

最近公司一个项目上服务器发生故障,如下图:
服务器是read0来设置的磁盘空间,这势必导致现在的麻烦,只要一块硬盘出现问题,所有硬盘都不能使用,并且会出现数据丢失,数据恢复还需要请专业团队来进行数据恢复。
现在数据硬盘出现橘色灯在闪烁伴随着绿色灯一起闪烁,----》证明硬盘已经出现问题,启用了保护机制,

微信图片_20181224144113.jpg

微信图片_20181224144129.jpg

微信图片_20181224144133.jpg

清除foreign步骤:

注:该操作可能会对foreign盘数据有影响,清除foreign前请确保机器重要数据已备份好!!

1、首先得先按ctrl+n切到PDMgmt查看硬盘处于"foreign"

  1. 按ctrl+n切到foreign view界面,在最上面一行按F2,会出现foreign config选项,回车,
    1.jpg

①若是选择input(导入),可能导入成功也可能导入失败,若导入成功之后就能将阵列信息导入到该盘,再回PDMgmt查看硬盘状态,硬盘状态会变为 rebuild,等待重建成功就可以了;若导入失败,回PDMgmt查看硬盘状态,硬盘状态会变为foreign或者ready,若是foreign则需要确认数据安全 进行下面clear(清除)操作;若是ready 后续按照附录步骤去操作即可。
2.jpg

②若是选择clear(清除),PDMgmt中硬盘状态会直接变成ready,后续就按照附录步骤去操作即可。

设备报错出现的问题,数据出现数据的情况下,数据处理,现在硬盘故障已经排除,现在出现的是系统问题,排除需要使用更高版本的PE软件进入系统,(幸运的是公司服务器重启之后故障自动排除,唯一出现问题是:故障硬盘绿色和橘色灯在交替闪烁,示意硬盘已经损坏,需要故障更换)
微信图片_20181224144137.jpg

数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持。

此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL Server Migration Assistant for MySQL 的使用.

从上面链接的官网下载安装.

第一步:创建一个迁移工程

1.png

需要注意的是你需要选择迁移到的SQL Server数据库的版本,目前支持:SQL Azure,SQL Server 2005,SQL Server2008,SQL Server 2012,SQL Server2014,根据实际需要选择你要迁移到目标数据库的版本。

第二步:连接源数据库和目标数据库

2.png
3.png

上面的是源:MySql,下面的是目标:SQL Server

第三步:选择需要迁移的数据库创建迁移分析报告

此报告会分析当前需要迁移的数据库中的所有表结构并会生成一个可行性报告
4.png

生成的报告如下:分析需要转换的对象,表,数据库有多少个,是否存在不可转换的对象等信息,如有检查错误会下下面输出
5.png

 第四步: 转换schema 也就是数据库结构

否则转换的数据库结构是不会到目标数据库的
6.png

点击同步之后同样会有一个同步的报告:
7.png

点击ok之后就真正执行同步操作会将你转换完的结构同步到目标数据库上,创建对应的表及其他对象。同步操作完成之后会有如下输出:
8.png

第六步:结构同步完成之后接下来就是数据迁移操作了

我们可以看到右边有几个tab页,当前选中的是Type Map,会列出源数据库和目标数据库的字段类型的mapping关系
9.png

因为不同数据库之间的数据类型还是有所差异的。
10.png

点击Migrate Data之后需要再次确认输入源数据库密码和目标数据库密码,然后开始真正的数据的迁移。

一、修改打包形式
在pom.xml里设置 <packaging>war</packaging>

二、移除嵌入式tomcat插件
在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,

<dependency>

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
    <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
</exclusions>

</dependency>
三、添加servlet-api的依赖
下面两种方式都可以,任选其一

<dependency>

<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>

</dependency>
<dependency>

<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>

</dependency>
四、修改启动类,并重写初始化方法
我们平常用main方法启动的方式,都有一个App的启动类,代码如下:

@SpringBootApplication
public class Application {

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

}
我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:

/**

  • 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
    */

public class SpringBootStartApplication extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    // 注意这里要指向原先用main方法执行的Application启动类
    return builder.sources(Application.class);
}

}
五、打包部署
在项目根目录下(即包含pom.xml的目录),在命令行里输入:
mvn clean package -Dmaven.test.skip=true即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。

然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。
最后在浏览器中输入

http://localhost:[端口号]/[打包项目名]/

发布成功