Spring基础部分
xml 配置文件
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
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
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
<bean id = "唯一标识" class ="类的全限定名"/>
依赖注入(只介绍比较常用的方法)
构造方法注入(类中含有非空参的构造方法)
<constructor-arg name= "参数名" ref = "对应的唯一标识"/>(参数类型为引用数据类型)
<constructor-arg name= "参数名" value = "对应的唯一标识"/>(参数为基本数据类型或者String类型)
set方法注入(类中必须含有相应的set方法)
<property name ="参数名" value = "属性值"/>
开启注解扫描
<context:component-scan base-package="包的位置"/ >
让Spring容器管理 Druid连接池
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/ssm_lx"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
让Spring容器管理 QueryRunner对象
<bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner">
<!--通过构造函数方式 依赖注入-->
<constructor-arg name="ds" ref="druidDataSource"></constructor-arg>
</bean>
</beans>
注解
@Component
web层@Controller
service层 @Service
dao层 @Repository
依赖注入
@Autowired无法确定唯一类型 Spring框架提供
@Qualifier("id") 按照id注入 Spring框架提供 !常用
@Resource(name="id") jdk 提供的注解
bean标签属性
@Scope
value:
singleton单例
prototype多例
@PostConstruct
对应init-method
@PreDestroy
对应destroy-method
纯注解开发
@Configuration标识当前类是Spring的一个配置类
@ComponentScan替代xml中的`<context:component-scan/>`
@Import引入其他配置类,被引入的配置类可以不加@Configuration注解
@PropertySource:引入外部properties文件,注意加classpath:
@Value对成员变量赋值
@Bean将一个方法的返回值对象加入到Spring的容器当中管理
@Qualifier可以使用在方法参数上,表明对应的形参引入/注入的对象类型
注入properties配置文件中的键值对 例如:
@Value("${jdbc.driverClassName}")
(properties文件中的键为jdbc.driverClassName将值赋给下面的driverClassName)
private String driverClassName;(这就完成了给driverClassName赋值 )
Spring对Junit的支持
介绍
junit运行的时候底层使用了Runner对象,有一个默认使用的Runner对象。
Spring对junit的支持,其实是自己实现了一个Runner对象(按照junit runner的要求实现)
Spring对junit的支持的体现
好处一:配置完之后,不需要我们手动的启动Spring
好处二:可以在junit测试类中使用@AutoWired等方式注入对象,直接对其进行调用测试
用法
Spring框架中的Runner对象, 替换Junit中的Runner对象
@RunWith(SpringJUnit4ClassRunner.class)
框架启动入口, 注解方式配置文件启动
@ContextConfiguration(classes = SpringConfig.class) java配置文件.class
框架启动入口, xml配置文件启动
@ContextConfiguration(locations = "classpath:beans.xml") xml配置文件
pom需要的依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>