Spring--入门
概述:
①Spring是一个开源框架
②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
③Spring是一个IOC(DI)和AOP容器框架。
④Spring的优良特性
[1]非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API
[2]依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。
[3]面向切面编程:Aspect Oriented Programming——AOP
[4]容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
[5]组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
[6]一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。
运行环境的搭建:
引入jar包:
spring-framework-4.0.0.RELEASE\libs目录下
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
简单例子:
package com.soyoungboy.bean; public class Person { private String lastName; private String firstName; private Integer age; private String gender; public Person() { super(); } public Person(String lastName, String firstName, Integer age, String gender) { super(); this.lastName = lastName; this.firstName = firstName; this.age = age; this.gender = gender; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Person [lastName=" + lastName + ", firstName=" + firstName + ", age=" + age + ", gender=" + gender + "]"; } }
person.xml文件配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="person" class="com.soyoungboy.bean.Person"> <property name="lastName" value="wang"></property> <property name="firstName" value="fubin"></property> <property name="age" value="18"></property> <property name="gender" value="man"></property> </bean> <!-- p标签 --> <bean id="person04" class="com.soyoungboy.bean.Person" p:age="18" p:lastName="Li" p:firstName="qiongqiong" p:gender="woman" > </bean> <!-- 通过构造器为bean的属性赋值 --> <bean id="person05" class="com.soyoungboy.bean.Person"> <constructor-arg name="firstName" value="heng"></constructor-arg> <constructor-arg name="lastName" value="luo"></constructor-arg> <constructor-arg name="age" value="18"></constructor-arg> <constructor-arg name="gender" value="man"></constructor-arg> </bean> </beans>
测试类:
package com.soyoungboy.test; import static org.junit.Assert.*; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.soyoungboy.bean.Person; public class PersonTest { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("person.xml"); @Test public void test() { Person bean = (Person) applicationContext.getBean("person"); System.out.println(bean); } @Test public void test4() { Person person04 = (Person) applicationContext.getBean("person04"); System.out.println(person04); } /** * 通过构造器获取对象内容 */ @Test public void test5() { Person person05 = (Person) applicationContext.getBean("person05"); System.out.println(person05); } }
运行结果分别是:
Person [lastName=wang, firstName=fubin, age=18, gender=man]
Person [lastName=Li, firstName=qiongqiong, age=18, gender=woman]
Person [lastName=luo, firstName=heng, age=18, gender=man]
相关文章
- Spring AOP Example Tutorial
- spring学习笔记(10)@AspectJ研磨分析[1]入门、注解基本介绍
- ssh(Spring+Spring mvc+hibernate)——Dept.hbm.xml
- Spring MVC 实现文件的上传和下载
- spring: 在Spring应用中使用JDBC(使用profiles选择数据源/使用基于JDBC驱动的数据源)
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- spring boot单元测试之五:用mybatis+H2数据库测试sql(spring boot 2.4.3)
- Spring AOP源码分析(一)AOP介绍和aspectj、SpringAOP入门
- Spring--入门
- Spring Data ElasticSearch入门案例
- Spring MVC入门示例教程--表单处理
- 基于Springboot2.0的Dubbo入门项目(dubbo-spring-boot-starter)
- Spring从入门到精通(一)----IoC(控制反转)
- Spring MVC更多家族成员----Handler与HandlerAdaptor---07
- Java Spring源代码研究之Bean的名称是大小写相关吗?
- Spring Boot:定制type Formatters
- 【项目实战】spring-boot-configuration-processor 一个用于生成配置元数据的注解处理器
- 探索Spring和Spring Boot的异同:从入门到精准,快速掌握双方的区域和应用场景
- 【spring】Spring Data --Spring Data JPA
- 解决 Spring HttpMessageConverter 解析多余属性出错问题:DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
- RabbitMQ与Spring的框架整合之Spring Cloud Stream实战
- 用Spring构建企业Java应用程序的方法
- 替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
- 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件
- 【Spring6】| Spring的入门程序、集成Log4j2日志框架
- 【Spring Boot】SpringBoot 如何保证接口安全?老鸟们都是这么玩的!
- 【Spring】Spring缓存注解@Cacheable、@CacheEvict、@CachePut使
- 【java】Spring Boot --spring boot项目整合xxl-job