【Java从0到架构师,Java虚拟机学习集锦是我攒来的

	return DriverManager.getConnection("x", "x", "x");

}

}


<!-- 实例工厂 - 调用 factory.getConn() -->

<bean id="factory" class="com.mj.obj.ConnectionFactory"/>

<bean id="conn1" factory-bean="factory" factory-method="getConn1"/> 

```



[](
)静态工厂

-----------------------------------------------------------------------



```

public class ConnectionFactory {

    public static Connection getConn2() throws Exception {

        Class.forName("com.mysql.jdbc.Driver");

        return DriverManager.getConnection("x", "x", "x");

    }

} 




[](
)FactroyBean

------------------------------------------------------------------------------



public class ConnectionFactoryBean implements FactoryBean {

@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;

}

}


<bean id="conn" class="com.mj.obj.ConnectionFactoryBean"/> 

// & 开头代表创建的是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://img-blog.csdnimg.cn/6b771e107c714d0e978789284cae0cc5.png?x-oss-process=image/watermark,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">

<context:property-placeholder location=“db.properties”/>

<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}"/>



[](
)SpEL表达式

--------------------------------------------------------------------------



> 参考资料:[https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions](
)



<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()}"/>-->



[](
)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** 格式)



<property name="age" value="25"/>

<property name="birthday" value="2011/09/10"/>



[](
)自定义 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 是固定的



<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>



* * *



### 最后

**我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。**

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

![新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏](https://img-blog.csdnimg.cn/img_convert/470967199b426c7b8f63ac6d4c6362af.png)

**还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。**

![新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏](https://img-blog.csdnimg.cn/img_convert/272189bc53725870642191272149e844.png)


### 最后

**我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。**

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

[外链图片转存中...(img-xiPsWMq6-1630663279355)]

**还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。**

[外链图片转存中...(img-wFIUqrza-1630663279359)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值