spring5的基础知识(1)

本文介绍了Spring框架的基础知识,包括Spring的核心内容如IOC容器、AOP、事务管理等。详细步骤展示了如何创建一个简单的Spring项目,涉及注解方式的Bean管理。通过@ spécifiquent, @Service, @Controller和@Repository注解实现对象创建,以及@Autowired注解实现属性注入。总结了注解方式在简化XML配置和提高代码可读性方面的优势。
摘要由CSDN通过智能技术生成

spring技术

spring顾名思义就是春天的意思,但是一年四季,春夏秋冬,只有春,其他三个不要了吗?就是意味着这个框架的到来就是春天,简化了我们平时的挺多java的繁琐,复杂,重复的操作。

spring的核心内容

  1. IOC容器; 把创建的对象交给spring管理
  2. AOP; 不修改源代码,功能增强
  3. IJDBCTemplete
  4. 事务管理
  5. Spring5新特性

详细步骤

1.创建maven项目

2.导入spring5相关的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.th</groupId>
    <artifactId>mmvn_test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- 传递性 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>


        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>



        <dependency>
            <groupId>net.sourceforge.cglib</groupId>
            <artifactId>com.springsource.net.sf.cglib</artifactId>
            <version>2.2.0</version>
        </dependency>



        <dependency>
            <groupId>org.aopalliance</groupId>
            <artifactId>com.springsource.org.aopalliance</artifactId>
            <version>1.0.0</version>
        </dependency>



        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>com.springsource.org.aspectj.weaver</artifactId>
            <version>1.6.8.RELEASE</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>




        <!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.7</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>



    </dependencies>
</project>

3.创建一个普通类,编写一个普通方法。

4。创建spring配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">

    <bean id="user" class="com.th.test1.User"></bean>
</beans>

注:spring的配置文件都是含beans的。

5.测试类
在这里插入图片描述

综上所述,一个最简单的 spring小demo就实现了。

Ioc

概念:
翻译过来就是控制反转的意思,就是不用一直不停的去对象创建和对象的调用了,集中的交给spring去进行管理了。使用IOC可以降低耦合度。

原理:就是xml解析,工厂模式,反射机制。

IOC操作的bean管理

bean管理主要就是指两个操作
1.spring创建对象 2.spring注入属性。

bean的管理操作用两种方式,
1.xml
2,注解
由于结合后期的学习springboot,使用注解的方式较多,xml的方式虽然逻辑清晰,但是需要写大量的代码,建交委繁琐,所以主要讲注解方式。

IOC 操作 Bean 管理(基于注解方式)

1、什么是注解
(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值…)
(2)使用注解,注解作用在类上面,方法上面,属性上面
(3)使用注解目的:简化 xml 配置
2、Spring 针对 Bean 管理中创建对象提供注解
(1)@Component
(2)@Service
(3)@Controller
(4)@Repository

  • 上面四个注解功能是一样的,都可以用来创建 bean 实例

component一般处理的是普通层的操作。
service一般处理的是业务层的操作。
controller一般处理的是web层的操作。
repository一般处理的是dao层的操作。

3、基于注解方式实现对象创建

第一步 引入依赖
在这里插入图片描述
第二步 开启组件扫描

<context:component-scan base-package=“com.th”></context:component-scan>

第三步 创建类,在类上面添加创建对象注解
//在注解里面 value 属性值可以省略不写,
//默认值是类名称,首字母小写
//UserService – userService
@Component(value = “userService”) //
public class UserService {
public void add() {
System.out.println(“service add…”);
}
}

4、开启组件扫描细节配置

<context:component-scan base-package=“com.atguigu” use-defaultfilters=“false”>
<context:include-filter type=“annotation”

expression=“org.springframework.stereotype.Controller”/>
</context:component-scan>

5、基于注解方式实现属性注入
(1)@Autowired:根据属性类型进行自动装配
第一步 把 service 和 dao 对象创建,在 service 和 dao 类添加创建对象注解
第二步 在 service 注入 dao 对象,在 service 类添加 dao 类型属性,在属性上面使用注解
@Service
public class UserService {
//定义 dao 类型属性
//不需要添加 set 方法
//添加注入属性注解
@Autowired
private UserDao userDao;
public void add() {
System.out.println(“service add…”);
userDao.add();
}
}

6、完全注解开发 (j就是放弃前面的所有xml操作,直接使用下面的这些注解就可以)
(1)创建配置类,替代 xml 配置文件
@Configuration //作为配置类,替代 xml 配置文件
@ComponentScan(basePackages = {“com.th”})
public class SpringConfig {
}

7.编写测试类
@Test
public void testService2() {
//加载配置类
ApplicationContext context
= new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = context.getBean(“userService”,
UserService.class);
System.out.println(userService);
userService.add();
}

总结

个人学习的简单版的spring的aop操作如上所示,使用几个注解,就可以省去不断的new操作,和属性的注入问题,还使用了工厂类,降低了类和类之间的耦合度。还有反射机制。
后面的aop操作,等下次更新吧,如果有错误的地方还希望大家能够多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值