spring-1 环境配置及入门

1,新建maven-》quickstart;

2,导入依赖

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<!--        spring context-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.1.5.RELEASE</version>
    </dependency>
<!-- spring aop-->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.9.6</version>
    </dependency>
<!--        日志 logback   -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>

3,配置spring的配置文件:名称没有要求(一般叫applicationContext.xml);

4,spring的核心API

mybatis的核心API是SqlSessionFactory,而spring的核心API就是ApplicationContext(接口?屏蔽实现的差异):用户对象的创建。

非web环境:ClassPathXmlApplicationContext。web环境XmlWebApplicationContext。

该工厂是重量级资源,一般一个应用只有一个。

5,程序开发spring。

1,创建类。2,在配置文件中配置。3,工厂得到。

1,创建类
public class Person {
    private String name;
    private Integer age;
//getter,setter略
}
2,配置文件配置
<!--定义对象,id指定id(unique),class指定类-->
    <bean id="person" class="begin.Person"></bean>
3,工厂得到对象
/**
     * 用于测试:spring工厂得到对象实例
     */
    @org.junit.Test
    public void test1(){
        ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
        Person person = (Person) ctx.getBean("person");
        System.out.println(person);
    }

6,细节:spring工厂创建的一般叫bean或者component。

getBean()方法的重载。

1,ctx.getBean("id"):object
	根据id来获得类的实例(需要强制转型)
2,ctx.getBean("id",class):原类对象
	根据id和class来获得对象实例(不需要强制转型)
3,ctx.getBean(class):原类对象 :
	根据class来获得对象实例,但是这样的class只能对应一个id
 4,ctx.getBeanDefinitionNames() :String []返回所有在bean中定义id标签的名字
	获得class的所有id名
5,ctx.getBeanNamesForType(Student.class):String[] 返回这个class的id名数组
	根据类型来获得ids
6,ctx.containsBeanDefinition(id):Boolean
	来判断是否存在指定的id
7,ctx.containsBean(id):Boolean
	来判断是否存在指定的id和name属性

7,配置文件的分析:

1,只配置class的类存在id吗?存在,只不过是spring为你指定的,后期不能引用。若这个id需要后期引用,需要指定。

2,name属性,作用:在spring配置文件中,为bean对象配置小名。

id和name的异同:

相同:
	Ctx.getBean("id|name")-->object
	<bean id="" class="">
			||
	<bean name="" class="">
不同:
1,别名可以有多个。
	<bean name="n1,n2,n3" class="">
2,xml的id属性的值,命名要求:必须以字母开头,字母,数字,下划线,连字符组成。不能以特殊的字符开头比如“?”等。
	而name属性的值,则没有要求,
	name属性会应用在特殊命名的场景下:比如/student(spring+struts1)
xml发展到今天,id属性的命名没有了要求
3,代码的区别:
	两个方法的区别:
		ctx.containsBeanDefinition(id):Boolean  只能判断id属性
		ctx.containsBean(id||name):Boolean 可以判断id和name属性

备注:日志logback的简单配置:

在logback.xml中

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} -%msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <root level="DEBUG">
        <appender-ref ref="STDOUT"></appender-ref>
    </root>
</configuration>

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值