springIOC的refresh方法
_
refresh方法概览
1 | public void refresh() throws BeansException, IllegalStateException { |
1 | public void refresh() throws BeansException, IllegalStateException { |
1 | public void refresh() throws BeansException, IllegalStateException { |
最原始的spring配置都是使用xml文件来作为配置(像下面这样),但是xml 写起来还是比较繁琐的
1 | <?xml version="1.0" encoding="UTF-8"?> |
所以在spring 3的时候引入了基于java注解的配置方式,让我们可以使用java类来配置spring的Bean
@Configuration @Bean @Lazy @DependsOn 等一系列注解
所以上面的xml翻译成java配置的话就像下面这样
1 | @Configuration |
最原始的spring配置都是使用xml文件来作为配置(像下面这样),但是xml 写起来还是比较繁琐的
1 | <?xml version="1.0" encoding="UTF-8"?> |
所以在spring 3的时候引入了基于java注解的配置方式,让我们可以使用java类来配置spring的Bean
@Configuration @Bean @Lazy @DependsOn 等一系列注解
所以上面的xml翻译成java配置的话就像下面这样
1 | @Configuration |
其实这个是由spring-context实现的
我们知道在spring中可以使用@Configuration注解标记的类来代替传统的xml配置,然后用@Bean注解标记方法代替<bean>
标签
在@Configuration注解标记的类中如果bean有依赖我们可以这样写
1 | /** |
BeanB 依赖BeanA,然后在上面的beanB()
方法里面直接写调用 beanA()
方法就行了.
直观来看是不是觉得会调用beanA()
方法去生成一个BeanA
对象。但是如果是这样的话,就和上面的beanA()
方法注入到springIOC容器的对象不是同一个了,这明显是不正确的。
两个线程循环输出1-100,一个输出奇数,一个输出偶数
可以用Condition
去实现这个功能。开启两个线程去获取同一个可重入锁.获取到锁之后打印当前的值,再使用condition.signal()
唤醒另一个线程,然后自己condition.await()
。最后释放锁。两个线程使用同样的代码。每次只有一个线程运行进行来实现交替输出
直接上代码
7. 整数反转 - 力扣(LeetCode) (leetcode-cn.com)
用以10取模的方式依次把x的最小位的数字取出,然后以*10的方式累加
1 | func reverse(x int) int { |
1. 两数之和 - 力扣(LeetCode) (leetcode-cn.com)
解题思路:
x+y=target;
解题1:
用双重循环的方式
1 | func twoSum(nums []int, target int) []int { |
解题2
项目代码托管,协作,问题追踪三件套。这三个软件同时使用时可以将用户统一托管给Jira
管理.
但是一般公司会有自己的账户体系并且使用了 CAS
作为统一登录管理.
这个时候就可以将这三个系统的登录以及用户管理交由CAS
来完成
由耶鲁大学开源的一套单点登录系统
基于SAML
协议来做SSO认证. CAS 可以支持多种认证协议.只需要做下简单的配置就行