一.spring新注解的说明
二.各种注解的使用说明
首先本案例是在上一篇文章所建项目的基础上进行开发的
2.1 定义spring配置文件类:
package com.ljf.spring.demo.anno.config;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
/**
* @ClassName: UserInfoConfig
* @Description: TODO
* @Author: liujianfu
* @Date: 2021/01/03 19:47:54
* @Version: V1.0
**/
@Configuration //标志该类是spring的核心配置类,相当于以前spring的applicationContext的xml配置文件
@ComponentScan("com.ljf.spring.demo.*") //相当于 <context:component-scan base-package="com.ljf.spring.demo"></context:component-scan>
@PropertySource("classpath:jdbc.properties") //等价于 <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
public class UserInfoConfig {
//获取配置文件jdbc.properties中的属性内容
@Value("jdbc.driver")
private String driverName;
@Value("jdbc.url")
private String url;
@Value("jdbc.username")
private String userName;
@Value("jdbc.password")
private String password;
//初始化数据源
@Bean("dataSource") //spring会将当前方法的返回值以制定名称存储到spring容器中。
public DataSource initDataSource() throws Exception{
ComboPooledDataSource ds=new ComboPooledDataSource();
ds.setDriverClass(driverName);
ds.setJdbcUrl(url);
ds.setUser(userName);
ds.setPassword(password);
return ds;
/** 这个方法等价于applicationContext的xml配置文件中这段代码
// <!--spring容器创建c3p0的连接-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
*/
}
}
图片截图:
2.2 将从文件加载到主配置文件中
主要是@Impoart 这个注解的使用
2.3 注释掉之前的xml配置
注掉之前的xml配置,进行调试,更具有说服力。
2.4 进行调试
package com.ljf.spring.demo.anno;
import com.ljf.spring.demo.anno.config.SpringConfig;
import com.ljf.spring.demo.anno.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import javax.sql.DataSource;
import java.sql.Connection;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
//方式一:通过xml配置文件+注解获取
/**
//1.获取核心容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.获取bean对象
UserService ds = ac.getBean(UserService.class);
//3.调用方法
ds.addUser();
**/
//方式二:通过注解配置文件+注解获取
//1.获取核心容器对象
ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
//2.获取bean对象
UserService ds = ac.getBean(UserService.class);
//3.调用方法
ds.addUser();
}
}