IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> spring框架总结 -> 正文阅读

[Java知识库]spring框架总结

一、反射的概念

1.反射的概念

反射就是在运行期间动态的获取的类的基本信息(类的属性,构造方法,普通方法)动态的调用对象的发现,极大地提高了java代码的灵活性

2.反射的三种创建方式

获取Class的方式:
		1.Class c = Class.forName(className);
		2.Class c2 = Test.class;
		3.Test t = new Test();
		Class c = t.getClass();

二、Spring 的概念

1.Spring的概念

Spring是一个轻量级的IoC和AOP容器框架。也是是为Java应用程序提供基础性服务的一套框架

2.Spring的作用

a.提供松耦合 解耦的使用

b.目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。

三、spring的IOC的概念

1.loc 的概念

a.IOC就是控制反转,指创建对象的控制权转移给Spring框架进行管理

b.由Spring根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。
c.使用java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法的。

2.loc的注解

注解使用在类的上面

@Service("studentService")//相当于创建了一个对象 
public class StudentServiceImpl implements StudentService {
}
loc的注解
@Component
@Repository(dao)
@Service(service)
@Controller(servelt)

相当于使用xml的

<bean id="student" class="org.lanqiao.entity.Student"/>

使用bean相当于创建了一个student的对象 由于id已经确定该对象的名字 所以类的名字的变化不会影响创建的对象 也就是降低了对象与对象之间的依赖关系

使用配置类

 @Configurable //表明该类是一个配置类  主要是用于配置 用来代替xml
@ComponentScan({"org.lanqiao"})//加入扫描,扫描该类的注解
public class AppConfig {
/* @Bean
 //等价于<bean id= class=/>
   public Student student(){
       return new Student();
   }
   @Bean
    public Grade grade(){
       return new Grade();
   }*/
}

使用配置类 注意点 我们自己创建的类可以使用@Component来创建对象 但是jar包的我们不能使用注解的方式可以采用@Bean的方式创建对象

测试类的使用

 @Test//单元测试
    public void test(){
// 使用配置类 
    AnnotationConfigApplicationContext ac = new 
    AnnotationConfigApplicationContext(AppConfig.class);// 使用配置类 
//使用xml的  配置类和Xml二选一
       ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
//使用getBean创建一个 studentService的对象
       StudentService studentService = (StudentService) ac.getBean("studentService");
//调用 studentService这的对象的方法
       studentService.insertStudent(new Student());
      
   }

总结

1.loc控制反转就是 创建对象的控制权交给spring框架来处理

2.创建对象的方式 xml使用<bean id="student" class="org.lanqiao.entity.Student"/>

注解使用@Component? @Repository(dao)? ?@Service(service)? ?@Controller(servelt)

@Lazy 懒加载 只有使用到了才会加载? @Scop Singleton单例模式? prototype多例模式

3.扫描类中使用的注解 xml 使用??

<context:component-scan base-package="org.lanqiao"/>

配置类使用

@ComponentScan({"org.lanqiao"})//加入扫描,扫描该类的注解

4.测试类? xml 使用

ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");

配置类使用

AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

四、Spring的DI的概念

Dl依赖注入的前提是ioc创建了对象才能使用

1.使用xml

<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="druidDataSource"/>

<bean id="Student" class="org.lanqiao.Student">

<property name="grade" ref="Grade"/>

</bean>

使用注解

@Autowired//bytype 更具类型来注入
@Qualifier("studentService") //若类型相同加这个更据名字来注入
@Primary//优先级 类型才相同 studentDao前加这个 先会被注入
@Resource  更具名字来注入

@Value 基本值注入

1.定义属性文件 info.prop? key--value

2.导入属性文件@propertySource("class path:info.prop")

3.使用

@Value("${name}")

String name;

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:31:58  更:2021-09-22 14:32:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:32:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码