本文主要是介绍【Java从0到架构师(2),Java教程百度云资源,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
public class ConnectionFactoryBean implements FactoryBean<Connection> {
@Override
public Connection getObject() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("x", "x", "x");
}
@Override
public Class<?> getObjectType() {
return Connection.class;
}
}
// & 开头代表创建的是FactoryBean类型的对象
// 参考: BeanFactory中的FACTORY_BEAN_PREFIX
System.out.println(ctx.getBean("&conn"))
```
[]( )引入外部配置文件
---------------------------------------------------------------------------
```
# db.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test_mybatis
jdbc.username=root
jdbc.password=root
```
首先在 applicationContext.xml 根标签中引入标签库:
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=6b771e107c714d0e978789284cae0cc5.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)
```
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引用db.properties文件的内容 -->
<context:property-placeholder location="db.properties"/>
<!-- FactoryBean -->
<bean id="conn" class="com.mj.obj.ConnectionFactoryBean">
<property name="driverClass" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<!-- ${username} 会固定的获取到本机用户名 -->
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
```
[]( )SpEL表达式
--------------------------------------------------------------------------
> 参考资料:[https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions]( )
```
<bean id="dog" class="com.mj.domain.Dog"/>
<bean id="person" class="com.mj.domain.Person">
<property name="dog" value="#{dog}"/>
<property name="age" value="#{dog.testAge}"/>
<property name="name" value="#{dog.testName.bytes.length}"/>
<property name="name" value="#{dog.getTestName()}"/>-->
</bean>
```
[]( )scope - 控制 bean 是否单例
---------------------------------------------------------------------------------------
> 参考资料:[https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-factory-scopes]( )
`scope="singleton"`:单例
* 通过同一个 id 值,在统一 IoC 容器中获取的永远是同一个实例
* 在 IoC 容器创建的时候,就会创建 bean,可以设置 `lazy-init="true"` 修改创建时机
`scope="prototype"`:非单例;每次 getBaen 时创建一次 bean
[]( )Converter
============================================================================
> [【Spring5.x】对象的生命周期、配置文件参数化、自定义类型转换器、后置处理Bean]( )
[]( )Spring 内置基本的类型转换功能
-------------------------------------------------------------------------------------
Spring 已经内置了基本的类型转换功能,比如:
* String 转 int
* String 转 Date(支持 **yyyy/MM/dd** 格式)
```
<bean id="service" class="com.mj.service.PersonServiceImpl">
<property name="age" value="25"/>
<property name="birthday" value="2011/09/10"/>
</bean>
```
[]( )自定义 Converter
--------------------------------------------------------------------------------
实现 Converter 接口:
```
public class DateConverter implements Converter<String, Date> {
private List<String> formats;
public void setFormats(List<String> formats) {
this.formats = formats;
}
@Override
public Date convert(String s) {
try {
return new SimpleDateFormat(format).parse(s);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
}
```
注册 Converter:
> 注:id 为 conversionService 是固定的
```
<bean id="person" class="com.mj.domain.Person" p:birthday="09_10_2111"/>
<!-- id 固定为 conversionService -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.mj.converter.DateConverter">
<property name="formats" value="yyyy-MM-dd"/>
</bean>
<bean class="com.mj.converter.DateConverter">
<property name="formats" value="MM_dd_yyyy"/>
</bean>
</set>
</property>
</bean>
```
* * *
进阶示例:在 xml 中传入 list 的类设计
## 总结
至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**
1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
2. 项目经历:只写明星项目,描述遵循 STAR 法则;
3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
> 以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=img_convert/7db51b5a50ecb6cf00b039378381b09f.png)
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=img_convert/453c87b77c0d265da83cbdf62b6441eb.png)
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=img_convert/db85107d6240ffda9689df20baf1714f.png)
s://codechina.csdn.net/m0_60958482/java-p7)**
1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
2. 项目经历:只写明星项目,描述遵循 STAR 法则;
3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
> 以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
[外链图片转存中...(img-F2qd3wSv-1630922250870)]
[外链图片转存中...(img-qpuJ0Nqj-1630922250872)]
[外链图片转存中...(img-qDkIvidN-1630922250874)]
这篇关于【Java从0到架构师(2),Java教程百度云资源的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!