Spring Boot文件上传与下载讲解与实战(超详细 附源码)

源码请点赞收藏关注后评论区留下QQ邮箱或者私信

文件上传与下载是Web应用开发中常用的功能之一,在实际的Web应用开发中,为了成功上传文件,必须将表单的method设置为post,并将enctype设置为multipart/form-data 只有这样设置,浏览器才能将所选文件的二进制数据发送给服务器

从Servlet3.0开始,就提供了处理文件上传的方法,但这种文件上传需要在Java Servlet中完成,而Spring MVC提供了更简单的封装。Spring MVC是通过Apache Commons FileUpload技术实现一个MultipartResolver的实现类CommonsMultipartResovler完成文件上传的。因此,Spring MVC的文件上传需要依赖Apache Commons FileUpload组件

Spring MVC将上传文件自动绑定到MultipartFile对象中,MultipartFile提供了获取上传文件内容,文件名等方法。并通过transferTo方法将文件上传到服务器的磁盘中,MultipartFile常用方法如下

byte[]getBytes() 获取文件数据

String getContentType() 获取文件MIME类型

InputStream getInputStream() 获取表单中文件组件的名字

String getName() 获取表单中文件组件的名字

String getOriginalFilename() 获取上传文件的原名

long getSize() 获取文件的字节大小

boolean isEmpty() 是否有选择上传文件

void transferTo() 将上传文件保存到一个目标文件中

  Spring Boot的spring-boot-starter-web已经集成了Spring MVC 所以使用Spring Boot实现文件上传更加敏捷,只需引入Apache Commons FileUpload组件依赖即可

下面通过一个实例来加深理解

操作步骤如下

1:引入Apache Commons FileUpload组件依赖

在Web应用的ch5_2的pom.xml文件中 添加Apache Commons FileUpload组件依赖 代码如下



-

4.0.0


-

org.springframework.boot

spring-boot-starter-parent

2.1.5.RELEASE








com.ch

ch5_2

0.0.1-SNAPSHOT

ch5_2

Demo project for Spring Boot


-

11




-


-

commons-fileupload

commons-fileupload




1.3.3




-

org.springframework.boot

spring-boot-starter-thymeleaf




-

org.springframework.boot

spring-boot-starter-web




-

org.springframework.boot

spring-boot-starter-test

test






-


-


-

org.springframework.boot

spring-boot-maven-plugin







2:设置上传文件大小限制

在Web应用的ch5_2的配置文件application。properties中  添加如下配置限制上传文件大小

server.servlet.context-path=/ch5_2
#上传文件时,默认单个上传文件大小是1MB,max-file-size设置单个上传文件大小
spring.servlet.multipart.max-file-size=50MB
#默认总文件大小是10MB,max-request-size设置总上传文件大小
spring.servlet.multipart.max-request-size=500MB

3:创建选择文件视图页面

在ch5_2应用的src/main/resources/templates目录下 创建选择文件视图页面uploadFile.html 该页面中有一个enctype属性值为multipart/form-data的form表单 部分代码如下






Insert title here





文件上传示例

4:创建控制器

在ch5_2应用的com.ch.ch5_2.controller包中 创建控制器类TestFileUpload 在该类中有4个处理方法一个是界面导航方法,uploadfile 一个是实现文件上传的upload方法,一个是显示将要被下载文件的showDownLoad 方法,一个是实现下载功能的download方法 部分代码如下

package com.ch.ch5_2.controller;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.ResponseEntity.BodyBuilder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class TestFileUpload {
	/**
	 * 进入文件选择页面
	 */
	@RequestMapping("/uploadFile")
	public String uploadFile() {
		return "uploadFile";
	}
	/**
	 * 上传文件自动绑定到MultipartFile对象中,
	 * 在这里使用处理方法的形参接收请求参数。
	 * @throws IOException 
	 * @throws IllegalStateException 
	 */
	@RequestMapping("/upload")
	public String upload(
			HttpServletRequest request,
			@RequestParam("description") String description,
			@RequestParam("myfile") MultipartFile myfile) throws IllegalStateException, IOException {
		System.out.println("文件描述:" + description);
		//如果选择了上传文件,将文件上传到指定的目录uploadFiles
		if(!myfile.isEmpty()) {
			//上传文件路径
			String path = request.getServletContext().getRealPath("/uploadFiles/");
			//获得上传文件原名
			String fileName = myfile.getOriginalFilename();
		
	}
	/**
	 * 实现下载功能
	 * @throws IOException 
	 */
	@RequestMapping("/download")
	public ResponseEntity download(
			HttpServletRequest request, 
			@RequestParam("filename") String filename,
			@RequestHeader("User-Agent") String userAgent) throws IOException {
		//下载文件路径
		String path = request.getServletContext().getRealPath("/uploadFiles/");
		//构建将要下载的文件对象
		File downFile = new File(path + File.separator + filename);
		//ok表示HTTP中的状态是200
		BodyBuilder builder =  ResponseEntity.ok();
		//内容长度
		builder.contentLength(downFile.length());
		//application/octet-stream:二进制流数据(最常见的文件下载)
		builder.contentType(MediaType.APPLICATION_OCTET_STREAM);
		//使用URLEncoder.encode对文件名进行编码
		filename = URLEncoder.encode(filename,"UTF-8");
		/**
		 * 设置实际的响应文件名,告诉浏览器文件要用于“下载”和“保存”。
		 * 不同的浏览器,处理方式不同,根据浏览器的实际情况区别对待。
		 */
		if(userAgent.indexOf("MSIE") > 0) {
			//IE浏览器,只需要用UTF-8字符集进行URL编码
			builder.header("Content-Disposition", "attachment; filename=" + filename);
		}else {
			/**非IE浏览器,如FireFox、Chrome等浏览器,则需要说明编码的字符集
			 * filename后面有个*号,在UTF-8后面有两个单引号
			 */
			builder.header("Content-Disposition", "attachment; filename*=UTF-8''" + filename);
		}
		return builder.body(FileUtils.readFileToByteArray(downFile));
	}
}

5:创建文件下载视图页面

创建视图页面showFile.html






Insert t
				</div>
			</div>
		</div>
	</div>
</body>
</html></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/16c192625d124befb71f94a3e043c58b.jpg" target="_blank"><img alt="Spring Boot文件上传与下载讲解与实战(超详细 附源码)_第1张图片" height="361" src="http://img.e-com-net.com/image/info8/16c192625d124befb71f94a3e043c58b.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p> 同样运行Ch52Application主类 然后访问http://localhost:8080/ch5_2/uploadFile</p> 
  <p>效果如下</p> 
  <p><a href="http://img.e-com-net.com/image/info8/3a181c60fc964d51899d20d2579437ea.jpg" target="_blank"><img alt="Spring Boot文件上传与下载讲解与实战(超详细 附源码)_第2张图片" height="334" src="http://img.e-com-net.com/image/info8/3a181c60fc964d51899d20d2579437ea.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p>点击选择文件后弹出如下弹窗</p> 
  <p> <a href="http://img.e-com-net.com/image/info8/3da6fd570cee420a87c2391103aab56d.jpg" target="_blank"><img alt="Spring Boot文件上传与下载讲解与实战(超详细 附源码)_第3张图片" height="298" src="http://img.e-com-net.com/image/info8/3da6fd570cee420a87c2391103aab56d.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p> 假如没有上传文件 点击上传文件以后如下</p> 
  <p><a href="http://img.e-com-net.com/image/info8/842bd8d40581435f90fb84925a7991e6.jpg" target="_blank"><img alt="Spring Boot文件上传与下载讲解与实战(超详细 附源码)_第4张图片" height="459" src="http://img.e-com-net.com/image/info8/842bd8d40581435f90fb84925a7991e6.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p> </p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1584118374005317632"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(JAVA,Web,spring,boot,java,后端,spring,java-ee)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1903831388017192960.htm"
                           title="SenseVoice 部署记录" target="_blank">SenseVoice 部署记录</a>
                        <span class="text-muted">安静六角</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6/1.htm">开源软件</a>
                        <div>最近试用了SenseVoice(阿里团队开源的语音转文字)效果可以,可以本地部署,有webui界面,测试了万字以上的转换效果可以。首先部署好conda环境和cuda,这个可以查看他人的文章。步骤1.创建虚拟环境:condacreate-nmainenvpython=3.102.然后安装依赖condaactivatemainenvpipinstall-rC:\Users\xx\Documents\P</div>
                    </li>
                    <li><a href="/article/1903830758372470784.htm"
                           title="rocketmq-client 4.3.0 在springboot中的使用" target="_blank">rocketmq-client 4.3.0 在springboot中的使用</a>
                        <span class="text-muted">Myueye</span>
<a class="tag" taget="_blank" href="/search/JAVA/1.htm">JAVA</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>rocketmq-client4.3.0在springboot中的使用1、导入依赖2、配置文件属性3、编写配置类4、使用测试5、结果5.1RocketMQ后台显示5.2前端页面5.3后端后台1、导入依赖org.apache.rocketmqrocketmq-client4.3.02、配置文件属性mq.nameserverAdd=ip地址:9876mq.topic=top1(topic名称)mq.p</div>
                    </li>
                    <li><a href="/article/1903828741151322112.htm"
                           title="Python基于深度学习的动物图片识别技术的研究与实现" target="_blank">Python基于深度学习的动物图片识别技术的研究与实现</a>
                        <span class="text-muted">Java老徐</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/1.htm">毕业设计</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%8A%A8%E7%89%A9%E5%9B%BE%E7%89%87%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/1.htm">深度学习的动物图片识别技术</a><a class="tag" taget="_blank" href="/search/Python%E5%8A%A8%E7%89%A9%E5%9B%BE%E7%89%87%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/1.htm">Python动物图片识别技术</a>
                        <div>博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌文末获取源码联系精彩专栏推荐订阅不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅Java项目精品实战案例《100套》Java微信小程序项目实战《100套》感兴趣的可以先收藏起来,还有大家</div>
                    </li>
                    <li><a href="/article/1903825584694292480.htm"
                           title="Linux脚本实践1" target="_blank">Linux脚本实践1</a>
                        <span class="text-muted">一点多余.</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a>
                        <div>前言日常在Liunx中用到多个版本的java修改很麻烦,一个脚本搞定。1.准备两个jdk(如下图所示)2.准备脚本文件viswitch_jdk.sh#!/bin/bash#提示用户输入JDK路径read-p"请输入JDK的绝对路径(例如/usr/local/jdk/jdk-11.0.21):"jdk_path#检查输入的路径是否存在if[!-d"$jdk_path"];thenecho"错误:路径</div>
                    </li>
                    <li><a href="/article/1903825458328301568.htm"
                           title="Spring Bean 的生命周期:从创建到销毁的完整解析" target="_blank">Spring Bean 的生命周期:从创建到销毁的完整解析</a>
                        <span class="text-muted">一点多余.</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>引言:为什么需要了解SpringBean的生命周期?在Spring框架中,Bean是应用程序的核心构建块,理解其生命周期对于开发高效、稳定的应用至关重要。根据2023年JetBrains开发者调查报告,超过75%的Java开发者使用Spring框架,而Bean的生命周期管理是Spring的核心特性之一。以下数据展示了Bean生命周期的重要性:90%的Spring性能问题与Bean的初始化或销毁不当</div>
                    </li>
                    <li><a href="/article/1903823066094432256.htm"
                           title="Android Token的原理和本地安全存储" target="_blank">Android Token的原理和本地安全存储</a>
                        <span class="text-muted">Ya-Jun</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>AndroidToken的原理和本地安全存储前言在移动应用开发中,Token是实现用户身份验证和授权的重要机制。本文将深入介绍Token的原理,以及在Android平台上如何安全地存储Token,帮助开发者构建可靠的身份验证系统。基础知识1.Token概述1.1Token的作用身份验证授权访问无状态设计1.2Token类型AccessTokenRefreshTokenJWT(JSONWebToke</div>
                    </li>
                    <li><a href="/article/1903820541941313536.htm"
                           title="今日BUG— java.lang.NumberFormatException" target="_blank">今日BUG— java.lang.NumberFormatException</a>
                        <span class="text-muted">水晶果冻1125</span>
<a class="tag" taget="_blank" href="/search/%E5%85%B6%E5%AE%83/1.htm">其它</a><a class="tag" taget="_blank" href="/search/bug/1.htm">bug</a><a class="tag" taget="_blank" href="/search/int%E8%8C%83%E5%9B%B4/1.htm">int范围</a>
                        <div>今日照例巡检系统,打开系统的汇聚首页,发现数据都消失了,于是查看其他服务器上部署的版本也出现了同样的问题,而其他功能并未受影响,排除后台服务挂掉的可能,内心生出疑问一直运行稳定的程序怎么突然都查不出来内容了呢?赶紧查看系统运行日志,果然看见了报错信息java.lang.NumberFormatException:Forinputstring:"2315841207"于是赶紧确认了下int数据类型的</div>
                    </li>
                    <li><a href="/article/1903813475482791936.htm"
                           title="中国大陆网站用了lightHouse之后还有必要用WebPageTest么?" target="_blank">中国大陆网站用了lightHouse之后还有必要用WebPageTest么?</a>
                        <span class="text-muted">混血哲谈</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>对于中国大陆的网站,即使已使用Lighthouse进行性能优化,WebPageTest仍有不可替代的价值。两者并非互斥,而是互补工具,适用于不同维度的性能分析。以下是具体原因和场景说明:一、核心结论:Lighthouse与WebPageTest的定位差异工具核心价值适用场景中国大陆场景的局限性Lighthouse提供代码级优化建议(如压缩资源、渲染阻塞修复)本地开发调试、快速生成优化清单仅反映本地</div>
                    </li>
                    <li><a href="/article/1903811962584756224.htm"
                           title="py之某website之music搜索接口" target="_blank">py之某website之music搜索接口</a>
                        <span class="text-muted">我不是程序员~~~~</span>
<a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">爬虫项目实战</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>fromlxmlimportetreeimportrequestsheaders={"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","accept-lan</div>
                    </li>
                    <li><a href="/article/1903811454289637376.htm"
                           title="HTTP核心知识" target="_blank">HTTP核心知识</a>
                        <span class="text-muted">Sean2077</span>
<a class="tag" taget="_blank" href="/search/HTTP/1.htm">HTTP</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a>
                        <div>理解HTTP协议是优化Web应用性能、调试问题和实现高效通信的基础。以下是前端开发者需要掌握的核心HTTP知识:1.HTTP基础概念请求与响应模型理解客户端(浏览器)发送HTTP请求,服务器返回HTTP响应的基本流程。HTTP方法(Methods)GET:获取资源(幂等操作)POST:提交数据(非幂等)PUT:更新资源DELETE:删除资源HEAD:仅获取响应头OPTIONS:查看服务器支持的通信</div>
                    </li>
                    <li><a href="/article/1903811453870206976.htm"
                           title="华为OD机试统一考试D卷C卷 - 机器人仓库搬砖 py" target="_blank">华为OD机试统一考试D卷C卷 - 机器人仓库搬砖 py</a>
                        <span class="text-muted">愤怒的小青春</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>平安寿险北分和飞鹤职能哪个强度好一些呀,平安寿险北分和飞鹤职能哪个强度好一些呀,两个offer纠结经营分析应该属于什么序列#数据分析#在牛客搜经营分析貌似只有字节有这个单独岗位名字,其他大厂都是在从属于数据分析,所以这俩昇腾计算岗位扩招,绝佳上车AI机会,速来ai芯片业务发展太快,要大量补充人力缺口。嵌入式软件开发、测试,前后端岗位,硬件岗位都招。院校范围很春招补录两个公司总包差不多,都是后台开发</div>
                    </li>
                    <li><a href="/article/1903810320141447168.htm"
                           title="秒开WebView Android性能优化全攻略:深度解析与实战策略" target="_blank">秒开WebView Android性能优化全攻略:深度解析与实战策略</a>
                        <span class="text-muted">俊星学长</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a>
                        <div>秒开WebViewAndroid性能优化全攻略:深度解析与实战策略在Android开发中,WebView作为一个重要的组件,用于在应用中嵌入和展示网页内容。然而,WebView的性能往往成为影响用户体验的关键因素之一。实现WebView的“秒开”体验,不仅需要开发者对WebView的工作机制有深入的理解,还需要掌握一系列性能优化策略。本文将从多个维度深入探讨AndroidWebView的性能优化,</div>
                    </li>
                    <li><a href="/article/1903809437764743168.htm"
                           title="前端性能优化-知识点" target="_blank">前端性能优化-知识点</a>
                        <span class="text-muted">甲亿</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a>
                        <div>Web性能优化意义1.减少整体加载时间:减小文件体积、减少HTTP请求、使用预加载。2.使网站尽快可用:仅加载首屏内容,其他内容根据需要进行懒加载。3.平滑和交互性:使用CSS替代JS动画、减少UI重绘。4.加载表现形式:使用加载动画、进度条、骨架屏等过渡信息,让用户感觉到页面加载更快。5.性能监测:性能指标、性能测试、性能监控持续优化等Web性能指标RAIL性能模型Response(响应):快速</div>
                    </li>
                    <li><a href="/article/1903809185712238592.htm"
                           title="Java24的新特性" target="_blank">Java24的新特性</a>
                        <span class="text-muted">hello_ejb3</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java18的新特性Java19的新特性Java20的新特性Java21的新特性Java22的新特性Java23的新特性Java2</div>
                    </li>
                    <li><a href="/article/1903808555442565120.htm"
                           title="JavaScript 性能优化实战:优化循环结构提升效率" target="_blank">JavaScript 性能优化实战:优化循环结构提升效率</a>
                        <span class="text-muted">deying0865423</span>
<a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录一、理解循环的性能损耗二、减少循环迭代次数(一)缓存数组长度(二)提前终止循环三、优化循环内部操作(一)避免在循环内执行复杂计算(二)减少DOM操作四、选择合适的循环类型(一)for循环与while循环的选择(二)for...in与for...of的使用场景在JavaScript编程中,循环结构是实现重复执行任务的基础工具。然而,不当的循环使用常常会导致性能瓶颈,特别是在处理大量数据时,循环的</div>
                    </li>
                    <li><a href="/article/1903805657425965056.htm"
                           title="SpringAOP-基本概念-AOP入门程序-核心概念-通知类型-通知顺序-切入点表达式-连接点joinpoint-记录操作日志-获取当前登录员工" target="_blank">SpringAOP-基本概念-AOP入门程序-核心概念-通知类型-通知顺序-切入点表达式-连接点joinpoint-记录操作日志-获取当前登录员工</a>
                        <span class="text-muted">汐栊</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>目录SpringAOP:AOP快速入门:AOP核心概念:AOP进阶:通知类型:注意事项:方法实现:@PointCutAOP通知顺序:执行顺序:不同切面类中,默认按照切面类的类名字母排序。用@Order(数字)加在切面类上来控制顺序AOP切入点表达式:切入点表达式-execution:切入点表达式-@annotation:可以使用通配符描述切入点:AOP连接点:AOP案例:将案例中增,删,改相关接口</div>
                    </li>
                    <li><a href="/article/1903799853079654400.htm"
                           title="漫谈jvm" target="_blank">漫谈jvm</a>
                        <span class="text-muted">另一个绝影</span>
<a class="tag" taget="_blank" href="/search/JVM/1.htm">JVM</a><a class="tag" taget="_blank" href="/search/%E6%BC%AB%E8%B0%88jvm/1.htm">漫谈jvm</a>
                        <div>背景介绍jvm已经是Java开发的必备技能了,jvm相当于Java的操作系统。JVM,javavirtualmachine,即Java虚拟机,是运行javaclass文件的程序。Java代码经过Java编译器编译,会编译成class文件,一种平台无关的代码格式,class文件按照jvm规范,包括了java代码运行的数据和代码等内容。jvm加载class文件后,就可以执行java代码了。JVM有不同</div>
                    </li>
                    <li><a href="/article/1903799852358234112.htm"
                           title="漫谈JVM" target="_blank">漫谈JVM</a>
                        <span class="text-muted">weixin_34111790</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>2019独角兽企业重金招聘Python工程师标准>>>背景介绍创建了一个技术类公众号:一起源码分析,里面会分享最新的开源代码、源码解读、开发技巧等,欢迎大家关注。JVM已经是Java开发的必备技能了,JVM相当于Java的操作系统。JVM,javavirtualmachine,即Java虚拟机,是运行javaclass文件的程序。Java代码经过Java编译器编译,会编译成class文件,一种平台</div>
                    </li>
                    <li><a href="/article/1903795819367165952.htm"
                           title="Spring事务失效的常见场景" target="_blank">Spring事务失效的常见场景</a>
                        <span class="text-muted">红云梦</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>1事务1.1数据库事务作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全不执行1.2事务的四大特性(ACID)原子性(Atomicity):要么成功,要么失败。一个事务内的所有SQL语句同步执行(依靠undo.log日志保证)一致性(Consistency):事务前后总量不变,数据库完整性约束没有被破坏隔离性(Isolation):一个事务执行不被其他事务干扰(锁+MVCC)持久性(Du</div>
                    </li>
                    <li><a href="/article/1903788381238784000.htm"
                           title="去哪儿网 ReactNative 跨小程序多端方案介绍" target="_blank">去哪儿网 ReactNative 跨小程序多端方案介绍</a>
                        <span class="text-muted">去哪儿网技术沙龙</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%89%8D%E7%AB%AF/1.htm">大前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/native/1.htm">native</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a>
                        <div>1前言qrn-remax-unir是由去哪儿网前端技术团队实现的一套将RN适配到小程序端的跨端组件,通过该组件库可快速方便的将RN源代码直接运行到小程序端。方案参考了react-native-web的适配方案,使用remax框架来实现适配组件库并达到适配多小程序的目的。和react-native-web一样,它对RN源代码侵入度低,并且调试和替换组件相当方便。方案来自于社区,我们只是合理的应用用来</div>
                    </li>
                    <li><a href="/article/1903785734737817600.htm"
                           title="流浪地球 - 华为OD机试真题(E卷、Java)" target="_blank">流浪地球 - 华为OD机试真题(E卷、Java)</a>
                        <span class="text-muted">什码情况</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E8%AF%95/1.htm">机试</a>
                        <div>针对刷题难,效率慢,我们提供一对一算法辅导,针对个人情况定制化的提高计划(全称1V1效率更高)。有兴趣的同学可以扫码添加我们的微信(code5bug)了解,免费试课一下。题目描述流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0~N。1).初始状态下所有的发动机都是未启动状态;2).发动机启动的方式分为”手动启动”和”关联启动”两种方式;3).如果在时刻1一个发动机被启动,下一个时刻</div>
                    </li>
                    <li><a href="/article/1903781445789347840.htm"
                           title="uboot(bootrom的作用)" target="_blank">uboot(bootrom的作用)</a>
                        <span class="text-muted">花落已飘</span>
<a class="tag" taget="_blank" href="/search/uboot/1.htm">uboot</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/uboot/1.htm">uboot</a>
                        <div>BootROM详细讲解1.什么是BootROM?BootROM(BootRead-OnlyMemory)是一种固化在芯片内部的只读存储器(ROM),用于存放设备启动时执行的第一阶段引导代码。由于它是只读的,意味着其内容在芯片出厂时已经写入,无法更改。作用:当设备上电或复位时,BootROM负责最早的引导过程,它会初始化硬件环境,并决定从哪个存储介质加载操作系统或用户程序。2.BootROM的作用B</div>
                    </li>
                    <li><a href="/article/1903774881703587840.htm"
                           title="《AI大模型趣味实战 》第8集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 2" target="_blank">《AI大模型趣味实战 》第8集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 2</a>
                        <span class="text-muted">带娃的IT创业者</span>
<a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E8%B6%A3%E5%91%B3%E5%AE%9E%E6%88%98/1.htm">AI大模型趣味实战</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>《AI大模型趣味实战》第8集:多端适配个人新闻头条基于大模型和RSS聚合打造个人新闻电台(FlaskWEB版)2摘要本文末尾介绍了如何实现新闻智能体的方法。在信息爆炸的时代,如何高效获取和筛选感兴趣的新闻内容成为一个现实问题。本文将带领读者通过Python和Flask框架,结合大模型的强大能力,构建一个个性化的新闻聚合平台,不仅能够自动收集整理各类RSS源的新闻,还能以语音播报的形式提供"新闻电台</div>
                    </li>
                    <li><a href="/article/1903773619742371840.htm"
                           title="基于 MySQL 和 Spring Boot 的在线论坛管理系统设计与实现" target="_blank">基于 MySQL 和 Spring Boot 的在线论坛管理系统设计与实现</a>
                        <span class="text-muted">城南|阿洋-计算机从小白到大神</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>markdownCopy✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、pyhton、机器学习技术领域和毕业项目实战✌哈喽兄弟们,好久不见哦~最近整理了一下之前写过的一些小项目/毕业设计。发现还是有很多存货的,想一想既然放在电脑里面也吃灰,那么还不如分享出去,没准还可以帮助到</div>
                    </li>
                    <li><a href="/article/1903771225176469504.htm"
                           title="模板方法模式" target="_blank">模板方法模式</a>
                        <span class="text-muted">烟沙九洲</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F/1.htm">模板方法模式</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>模板方法(TemplateMethod)模式属于行为型模式的一种。模板方法模式定义了一个操作中的算法骨架,并将一些步骤延迟到子类中实现。模板方法模式的核心思想是:父类定义骨架,子类实现某些细节。模板方法模式允许子类在不改变算法结构的情况下,重新定义算法中的某些特定步骤。Java标准库有很多模板方法模式的应用。比如集合类中的AbstractList、AbstractQueuedSynchronize</div>
                    </li>
                    <li><a href="/article/1903769711456350208.htm"
                           title=".net 4.0 webServices 的使用,从前端到后端,代码超全。" target="_blank">.net 4.0 webServices 的使用,从前端到后端,代码超全。</a>
                        <span class="text-muted">静静香甜</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a>
                        <div>1、创建webServices:创建之后会生成两个文件,分别是:SecurityWebService.asmx,SecurityWebService.asmx.csSecurityWebService.asmx代码:SecurityWebService.asmx.cs代码:usingNewtonsoft.Json;usingNewtonsoft.Json.Linq;usingSystem;usin</div>
                    </li>
                    <li><a href="/article/1903767820219510784.htm"
                           title="[开题报告]Springboot高校图书管理系统设计与实现lq627计算机毕业设计" target="_blank">[开题报告]Springboot高校图书管理系统设计与实现lq627计算机毕业设计</a>
                        <span class="text-muted">卓越计算机毕设</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a>
                        <div>本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。开题报告研究背景:随着高校图书馆的规模不断扩大和信息化程度的提高,传统的手工管理方式已经无法满足日益增长的图书馆资源管理需求。图书管理系统的设计与实现成为了解决这一问题的关键。通过引入计算机技术和信息管理系统,可以提高图书馆的管理效率和服务质量,为读者提供更便捷、高效的借阅体验。研究意义:图书管理系统</div>
                    </li>
                    <li><a href="/article/1903767820668301312.htm"
                           title="【重温设计模式】访问者模式及其Java示例" target="_blank">【重温设计模式】访问者模式及其Java示例</a>
                        <span class="text-muted">万猫学社</span>
<a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%B8%A9%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E5%8F%8A%E5%85%B6Java%E5%AE%9E%E7%8E%B0/1.htm">重温设计模式及其Java实现</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E8%80%85%E6%A8%A1%E5%BC%8F/1.htm">访问者模式</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>访问者模式的基本概念访问者模式,一种行为型设计模式,其基本定义是:允许一个或者多个操作应用到一组对象上,解耦操作和对象的具体类,使得操作的添加可以独立于对象的类结构变化。在面向对象编程中,访问者模式的重要性不言而喻。它将数据操作和数据结构分离,使得在不改变数据结构的前提下,可以添加新的操作,从而增强了系统的灵活性和可扩展性。在访问者模式中,数据结构是稳定的,而操作是易变的。这就像一座博物馆,展品(</div>
                    </li>
                    <li><a href="/article/1903767064217186304.htm"
                           title="MATH2110 - STATISTICS 3" target="_blank">MATH2110 - STATISTICS 3</a>
                        <span class="text-muted">W_X_99515681</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>TheUniversityofNottinghamSCHOOLOFMATHEMATICALSCIENCESSPRINGSEMESTERSEMESTER2025MATH2110-STATISTICS3Coursework1Deadline:3pm,Friday14/3/2025Yourneat,clearly-legiblesolutionsshouldbesubmittedelectronical</div>
                    </li>
                    <li><a href="/article/1903759621655425024.htm"
                           title="内核调试环境:buildroot/debootstrap制作文件系统、编译内核、QEMU模拟" target="_blank">内核调试环境:buildroot/debootstrap制作文件系统、编译内核、QEMU模拟</a>
                        <span class="text-muted">苏打呀</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/qemu/1.htm">qemu</a><a class="tag" taget="_blank" href="/search/kernel/1.htm">kernel</a>
                        <div>编译内核#安装常用工具和依赖,可能会多,懒得分了,全装了吧反正以后说不定还要用。。。sudoaptinstallcurlwgetgpgzshtreegitnet-toolsproxychains4remminavimtarstracellvmclangunzipgccgcc-multilibbuild-essentialflexbisoncmakemakegawkdkmsautoconfninja</div>
                    </li>
                                <li><a href="/article/46.htm"
                                       title="Maven" target="_blank">Maven</a>
                                    <span class="text-muted">Array_06</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>Maven 
 
Maven是基于项目对象模型(POM), 信息来管理项目的构建,报告和文档的软件项目管理工具。 
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司</div>
                                </li>
                                <li><a href="/article/173.htm"
                                       title="ibatis的queyrForList和queryForMap区别" target="_blank">ibatis的queyrForList和queryForMap区别</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a>
                                    <div>一.说明 
        iBatis的返回值参数类型也有种:resultMap与resultClass,这两种类型的选择可以用两句话说明之: 
        1.当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类</div>
                                </li>
                                <li><a href="/article/300.htm"
                                       title="LeetCode[位运算] - #191 计算汉明权重" target="_blank">LeetCode[位运算] - #191 计算汉明权重</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a>
                                    <div>原题链接:#191 Number of 1 Bits 
要求: 
写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。 
汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。 
难度:简单 
分析: 
将十进制参数转换为二进制,然后计算其中1的个数即可。 
“</div>
                                </li>
                                <li><a href="/article/427.htm"
                                       title="浅谈java类与对象" target="_blank">浅谈java类与对象</a>
                                    <span class="text-muted">15700786134</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>      java是一门面向对象的编程语言,类与对象是其最基本的概念。所谓对象,就是一个个具体的物体,一个人,一台电脑,都是对象。而类,就是对象的一种抽象,是多个对象具有的共性的一种集合,其中包含了属性与方法,就是属于该类的对象所具有的共性。当一个类创建了对象,这个对象就拥有了该类全部的属性,方法。相比于结构化的编程思路,面向对象更适用于人的思维</div>
                                </li>
                                <li><a href="/article/554.htm"
                                       title="linux下双网卡同一个IP" target="_blank">linux下双网卡同一个IP</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>转自: 
http://q2482696735.blog.163.com/blog/static/250606077201569029441/ 
 
由于需要一台机器有两个网卡,开始时设置在同一个网段的IP,发现数据总是从一个网卡发出,而另一个网卡上没有数据流动。网上找了下,发现相同的问题不少: 
一、 
关于双网卡设置同一网段IP然后连接交换机的时候出现的奇怪现象。当时没有怎么思考、以为是生成树</div>
                                </li>
                                <li><a href="/article/681.htm"
                                       title="安卓按主页键隐藏程序之后无法再次打开" target="_blank">安卓按主页键隐藏程序之后无法再次打开</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a>
                                    <div>遇到一个奇怪的问题,当SplashActivity跳转到MainActivity之后,按主页键,再去打开程序,程序没法再打开(闪一下),结束任务再开也是这样,只能卸载了再重装。而且每次在Log里都打印了这句话"进入主程序"。后来发现是必须跳转之后再finish掉SplashActivity 
  
本来代码: 
  
// 销毁这个Activity 
fin</div>
                                </li>
                                <li><a href="/article/808.htm"
                                       title="通过cookie保存并读取用户登录信息实例" target="_blank">通过cookie保存并读取用户登录信息实例</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a>
                                    <div>通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。 
下面通过cookie保存并读取用户登录信息的例子加深一下理解。 
(1)创建index.jsp文件。在改</div>
                                </li>
                                <li><a href="/article/935.htm"
                                       title="JAVA 对象池" target="_blank">JAVA 对象池</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ObjectPool/1.htm">ObjectPool</a>
                                    <div>原文地址: 
http://www.blogjava.net/baoyaer/articles/218460.html 
Jakarta对象池 
      ☆为什么使用对象池 
  恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率。Jakarta Commons Pool组件提供了一整套用于实现对象池化</div>
                                </li>
                                <li><a href="/article/1062.htm"
                                       title="ArrayList根据条件+for循环批量删除的方法" target="_blank">ArrayList根据条件+for循环批量删除的方法</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>场景如下: 
ArrayList<Obj> list 
 
Obj-> createTime, sid. 
 
现在要根据obj的createTime来进行定期清理。(释放内存) 
 
------------------------- 
 
首先想到的方法就是 
 
for(Obj o:list){
  if(o.createTime-currentT>xxx){
 </div>
                                </li>
                                <li><a href="/article/1189.htm"
                                       title="阿里巴巴“耕地宝”大战各种宝" target="_blank">阿里巴巴“耕地宝”大战各种宝</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/%E5%B9%B3%E5%8F%B0%E6%88%98%E7%95%A5/1.htm">平台战略</a>
                                    <div>“耕地保”平台是阿里巴巴和安徽农民共同推出的一个 “首个互联网定制私人农场”,“耕地宝”由阿里巴巴投入一亿 ,主要是用来进行农业方面,将农民手中的散地集中起来 不仅加大农民集体在土地上面的话语权,还增加了土地的流通与 利用率,提高了土地的产量,有利于大规模的产业化的高科技农业的 发展,阿里在农业上的探索将会引起新一轮的产业调整,但是集体化之后农民的个体的话语权 将更少,国家应出台相应的法律法规保护</div>
                                </li>
                                <li><a href="/article/1316.htm"
                                       title="Spring注入有继承关系的类(1)" target="_blank">Spring注入有继承关系的类(1)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>一个类一个类的注入 
1.AClass类 
 
package com.bijian.spring.test2;

public class AClass {

    String a;
    String b;
   
    public String getA() {
        return a;
    }
    public void setA(Strin</div>
                                </li>
                                <li><a href="/article/1443.htm"
                                       title="30岁转型期你能否成为成功人士" target="_blank">30岁转型期你能否成为成功人士</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E6%88%90%E5%8A%9F/1.htm">成功</a>
                                    <div>        很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人</div>
                                </li>
                                <li><a href="/article/1570.htm"
                                       title="[Velocity三]基于Servlet+Velocity的web应用" target="_blank">[Velocity三]基于Servlet+Velocity的web应用</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a>
                                    <div>什么是VelocityViewServlet 
使用org.apache.velocity.tools.view.VelocityViewServlet可以将Velocity集成到基于Servlet的web应用中,以Servlet+Velocity的方式实现web应用 
  Servlet + Velocity的一般步骤 
1.自定义Servlet,实现VelocityViewServl</div>
                                </li>
                                <li><a href="/article/1697.htm"
                                       title="【Kafka十二】关于Kafka是一个Commit Log Service" target="_blank">【Kafka十二】关于Kafka是一个Commit Log Service</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/service/1.htm">service</a>
                                    <div>Kafka is a distributed, partitioned, replicated commit log service.这里的commit log如何理解? 
  
A message is considered "committed" when all in sync replicas for that partition have applied i</div>
                                </li>
                                <li><a href="/article/1824.htm"
                                       title="NGINX + LUA实现复杂的控制" target="_blank">NGINX + LUA实现复杂的控制</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/lua+nginx+%E6%8E%A7%E5%88%B6/1.htm">lua nginx 控制</a>
                                    <div>安装lua_nginx_module 模块 
lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty 
Centos和debian的安装就简单了。。 
这里说下freebsd的安装: 
fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
ma</div>
                                </li>
                                <li><a href="/article/1951.htm"
                                       title="java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字" target="_blank">java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>

public class TwoElementEqualSum {

	/**
	 * 第 14 题:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于 </div>
                                </li>
                                <li><a href="/article/2078.htm"
                                       title="Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder" target="_blank">Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>今天看Netty如何实现一个Http Server 
org.jboss.netty.example.http.file.HttpStaticFileServerPipelineFactory: 
 

		pipeline.addLast("decoder", new HttpRequestDecoder());
        pipeline.addLast(&quo</div>
                                </li>
                                <li><a href="/article/2205.htm"
                                       title="java敏感词过虑-基于多叉树原理" target="_blank">java敏感词过虑-基于多叉树原理</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%9D%E7%A6%81%E8%AF%8D%E8%BF%87%E8%99%91/1.htm">违禁词过虑</a><a class="tag" taget="_blank" href="/search/%E6%9B%BF%E6%8D%A2%E8%BF%9D%E7%A6%81%E8%AF%8D/1.htm">替换违禁词</a><a class="tag" taget="_blank" href="/search/%E6%95%8F%E6%84%9F%E8%AF%8D%E8%BF%87%E8%99%91/1.htm">敏感词过虑</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E5%8F%89%E6%A0%91/1.htm">多叉树</a>
                                    <div>基于多叉树的敏感词、关键词过滤的工具包,用于java中的敏感词过滤 
1、工具包自带敏感词词库,第一次调用时读入词库,故第一次调用时间可能较长,在类加载后普通pc机上html过滤5000字在80毫秒左右,纯文本35毫秒左右。 
  
2、如需自定义词库,将jar包考入WEB-INF工程的lib目录,在WEB-INF/classes目录下建一个 
utf-8的words.dict文本文件,</div>
                                </li>
                                <li><a href="/article/2332.htm"
                                       title="多线程知识" target="_blank">多线程知识</a>
                                    <span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a>
                                    <div> 
  
  T1,T2,T3三个线程工作顺序,按照T1,T2,T3依次进行 
  public class T1 implements Runnable{    
     
       @Override    
      </div>
                                </li>
                                <li><a href="/article/2459.htm"
                                       title="spring整合activemq" target="_blank">spring整合activemq</a>
                                    <span class="text-muted">dalan_123</span>
<a class="tag" taget="_blank" href="/search/java+spring+jms/1.htm">java spring jms</a>
                                    <div>整合spring和activemq需要搞清楚如下的东东1、ConnectionFactory分:     a、spring管理连接到activemq服务器的管理ConnectionFactory也即是所谓产生到jms服务器的链接      b、真正产生到JMS服务器链接的ConnectionFactory还得</div>
                                </li>
                                <li><a href="/article/2586.htm"
                                       title="MySQL时间字段究竟使用INT还是DateTime?" target="_blank">MySQL时间字段究竟使用INT还是DateTime?</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>  
环境:Windows XPPHP Version 5.2.9MySQL Server 5.1 
第一步、创建一个表date_test(非定长、int时间) 
CREATE TABLE `test`.`date_test` (`id` INT NOT NULL AUTO_INCREMENT ,`start_time` INT NOT NULL ,`some_content`</div>
                                </li>
                                <li><a href="/article/2713.htm"
                                       title="Parcel: unable to marshal value" target="_blank">Parcel: unable to marshal value</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/marshal/1.htm">marshal</a>
                                    <div>在两个activity直接传递List<xxInfo>时,出现Parcel: unable to marshal value异常。      在MainActivity页面(MainActivity页面向NextActivity页面传递一个List<xxInfo>):       Intent intent = new Intent(this, Next</div>
                                </li>
                                <li><a href="/article/2840.htm"
                                       title="linux进程的查看上(ps)" target="_blank">linux进程的查看上(ps)</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux+ps/1.htm">linux ps</a><a class="tag" taget="_blank" href="/search/linux+ps+-l/1.htm">linux ps -l</a><a class="tag" taget="_blank" href="/search/linux+ps+aux/1.htm">linux ps aux</a>
                                    <div>ps:将某个时间点的进程运行情况选取下来 
转载请出自出处:http://eksliang.iteye.com/admin/blogs/2119469 
http://eksliang.iteye.com 
        ps 这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个</div>
                                </li>
                                <li><a href="/article/2967.htm"
                                       title="为什么第三方应用能早于System的app启动" target="_blank">为什么第三方应用能早于System的app启动</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/System/1.htm">System</a>
                                    <div>Android应用的启动顺序网上有一大堆资料可以查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader,软件启动的大致流程应该是启动kernel -> 运行servicemanager 把一些native的服务用命令启动起来(包括wifi, power, rild, surfaceflinger, mediaserver等等)-> 启动Dalivk中的第一个进程Zygot</div>
                                </li>
                                <li><a href="/article/3094.htm"
                                       title="App Framework发送JSONP请求(3)" target="_blank">App Framework发送JSONP请求(3)</a>
                                    <span class="text-muted">hw1287789687</span>
<a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E5%9F%9F%E8%AF%B7%E6%B1%82/1.htm">跨域请求</a><a class="tag" taget="_blank" href="/search/%E5%8F%91%E9%80%81jsonp/1.htm">发送jsonp</a><a class="tag" taget="_blank" href="/search/ajax%E8%AF%B7%E6%B1%82/1.htm">ajax请求</a><a class="tag" taget="_blank" href="/search/%E8%B6%8A%E7%8B%B1%E8%AF%B7%E6%B1%82/1.htm">越狱请求</a>
                                    <div>App Framework 中如何发送JSONP请求呢? 
使用jsonp,详情请参考:http://json-p.org/ 
如何发送Ajax请求呢? 
(1)登录 
/***
 * 会员登录
 * @param username
 * @param password
 */
var user_login=function(username,password){
//    aler</div>
                                </li>
                                <li><a href="/article/3221.htm"
                                       title="发福利,整理了一份关于“资源汇总”的汇总" target="_blank">发福利,整理了一份关于“资源汇总”的汇总</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90/1.htm">资源</a>
                                    <div>觉得有用的话,可以去github关注:https://github.com/justjavac/awesome-awesomeness-zh_CN  通用 
 
  free-programming-books-zh_CN 免费的计算机编程类中文书籍  
  精彩博客集合 hacke2/hacke2.github.io#2  
  ResumeSample 程序员简历</div>
                                </li>
                                <li><a href="/article/3348.htm"
                                       title="用 Java 技术创建 RESTful Web 服务" target="_blank">用 Java 技术创建 RESTful Web 服务</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a>
                                    <div>转载:http://www.ibm.com/developerworks/cn/web/wa-jaxrs/ 
  
JAX-RS (JSR-311) 【  Java API for RESTful Web Services 】是一种 Java™ API,可使 Java Restful 服务的开发变得迅速而轻松。这个 API 提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位</div>
                                </li>
                                <li><a href="/article/3475.htm"
                                       title="CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项" target="_blank">CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项</a>
                                    <span class="text-muted">超声波</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>前言: 
这两天项目要上线了,由我负责往服务器部署整个项目,因此首先要往服务器安装oracle,服务器本身是CentOS6.5的64位系统,安装的数据库版本是11g,在整个的安装过程中碰到很多的坑,不过最后还是通过各种途径解决并成功装上了。转别写篇博客来记录完整的安装过程以及在整个过程中的注意事项。希望对以后那些刚刚接触的菜鸟们能起到一定的帮助作用。 
  
安装过程中可能遇到的问题(注</div>
                                </li>
                                <li><a href="/article/3602.htm"
                                       title="HttpClient 4.3 设置keeplive 和 timeout 的方法" target="_blank">HttpClient 4.3 设置keeplive 和 timeout 的方法</a>
                                    <span class="text-muted">supben</span>
<a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a>
                                    <div>ConnectionKeepAliveStrategy kaStrategy = new DefaultConnectionKeepAliveStrategy() {
			@Override
			public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
				long keepAlive</div>
                                </li>
                                <li><a href="/article/3729.htm"
                                       title="Spring 4.2新特性-@Import注解的升级" target="_blank">Spring 4.2新特性-@Import注解的升级</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring+4/1.htm">spring 4</a>
                                    <div>3.1 @Import 
 
 @Import注解在4.2之前只支持导入配置类 
 在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean 
  
3.2 示例 
 
 演示java类 
  
package com.wisely.spring4_2.imp;

public class DemoService {
    public void doSomethin</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>