IoC容器初始化过程

IoC容器初始化分为3个过程:

1、Resource定位:寻找BeanDefinition定义(常见为Xml)的位置。

BeanDefinition资源定位是由ResourceLoader通过Resource接口完成,这个接口可以对各种形式的BeanDefinition做处理。

2、BeanDefinition载入:把用户定义好的Bean表示成IOC容器内部的数据结构(BeanDefinition)

BeanDefinition是POJO对象在IOC容器的抽象,IOC容器通过BeanDefinition管理各个Bean。

3、向IoC容器注册BeanDefinition:通过BeanDefinitionRegistry接口注册到IoC容器。

把载入过程中解析到的BeanDefinition通过BeanDefinitionRegistry接口注册到IoC容器,在IOC容器内部通过HashMap持有BeanDefinition。

BeanDefinition的Resource定位

线程安全/不安全

未完成

线程安全指多线程操作同一个对象时,采用加锁机制,先后更改数据也不会造成数据不一致或者数据污染的情况,线程不安全时常用synchronized,但是这可能会带来性能问题。

Java程序员开发中常用Linux命令

2017-03-06磁盘空间

使用场景主要是服务器部署应用

需要改样式

1、mv /opt/tomcat-7.0.69 /opt/tomcat7

修改文件(夹)名字: mv 修改前文件(夹)名 修改后文件(夹)名

2、ps -ef | grep tomcat

ps是Process Status的意思,用来列出系统中当前运行的进程

grep是Global Regular Expression Print,正则表达式

3、kill -pid

-pid是线程ID

4、find . -name 're\*' [-type d]

find 位置 参数

.代表当前目录及子目录, /根目录

re*代表以re开头的文件名,属于正则表达式的内容

5、tail -f xxx.log

实时查看文件变化

tail[必要参数][选择参数][文件]

-f 循环读取
-n<行数> 显示行数

vim的基本使用点这里点这里

6、解压文件 tar -zxvf *.tar.gz

tar -zcvf /tmp/t.tar.gz /tmp
压缩/tmp目录下的所有文件到/tmp/t.tar.gz文件

tar -zxvf xx.tar.gz .解压xx.tar.gz到当前目录

unzip xx.zip -d .解压xx.zip到当前目录

7、Linux查看磁盘空间(df,du)

df -h 查看各分区大小,可用空间

du -sh tmp 查看tmp目录大小

du -sh *当前目录及子目录

8、mkdir xxx

创建xxx目录

mkdir xxx ooo在当前目录依次创建xxx,ooo
mkdir -p xxx/ooo在当前目录创建xxx后,再创建子目录ooo

jsoup入门

Maven:

    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.10.2</version>
    </dependency>

获取网页内容、加载为Document对象

 Document doc = Jsoup.connect(String url).get();
 Document doc = Jsoup.parse(Strng url);
 Document doc = Jsoup.parse(String htmlSource);
<div id="main">
    <a id="title" name="title" class="large">
        Jsoup操作Document对象
    </a>
</div>

- 阅读全文 -

vim命令

Esc进入命令模式
:q退出
:w保存
:w!强制保存
:wq! 强制保存并退出

:set number 显示行号

:/word 向下(后)找word
:?word 向上(前)找word
查找时,按n查找下一个匹配的单词

G 到文本最后一行,也就是shift+g
ctrl+d 下一页
ctrl+u 上一页

其他linux命令 Java程序员开发中常用Linux命令

RabbitMQ安装

本文环境:CentOS 6.5(final)

1、更换源(可忽略)

备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载repo到/etc/yum.repos.d/

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

生成缓存

yum clean all
yum makecache

2、准备

yum -y install unixODBC unixODBC-devel java libxslt xmlto

3、安装simplejson

wget https://pypi.python.org/packages/source/s/simplejson/simplejson-3.5.3.tar.gz#md5=d5f62dfa6b6dea31735d56c858361d48 --no-check-certificate

tar zxvf simplejson-*.tar.gz
cd simplejson-*
python setup.py build
python setup.py install

- 阅读全文 -

Spring Boot中的常用注解

注解可以用在类,方法,方法的参数上
注意@controller @Service @Repository @Component之间的关系

@ResponseBody

Spring以字符串的形式渲染结果并将结果直接填充到HTTP的响应体中,直接返回给调用者,常用于构建RESTful的api

@Controller

用于定义控制器类,处理http请求在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层)

@RestController

@ResponseBody和@Controller的合集,返回json

注意@Controller和@RestController在使用上的区别

@RequestMapping('/path')

配置URL映射,拦截'/*'的http请求

多个URL访问一个方法:@RequestMapping(value={"/path1","/path2"})

@Component

泛指组件,常在公用类上使用

@ComponentScan

表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入

- 阅读全文 -

表格隔行换色

使用下面的css可以使表格隔行换色

tr {
    background: #0FF;
}

tr:nth-child(2n) {
    background: #CCC;
}

tr {
    background-color:expression((this.sectionRowIndex % 2 == 0) ? "#F00":"#CCC" );
}

效果:

展示效果-张国利博客

- 阅读全文 -

Linux开启/禁止ping

这是Linux服务器安全的一部分,后续会增加更多的文章

1、vi /proc/sys/net/ipv4/icmp_echo_ignore_all

修改值为1禁止ping
修改为0,可以ping

保存退出的时候可能提示fsync failed,我也不知道怎么回事,在某云主机上出现的这个提示,在本机上没有问题

可以使用下面的方法也可以达到禁止ping的目的

2、 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

允许ping,使用echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all就行了

- 阅读全文 -