建设官方网站的请示推广目标怎么写
DI:依赖注入
IOC:控制反转
AOP:面向切面
IOC容器:存放管理各种对象
Spring优势:
低耦合。(降低组件之间的关联性,实现软件各层之间的解耦)
声明式事务管理(基于AOP来管理)
和其他框架的整合(mybatis,Hibernate)
JavaWEB的MVC三层的每一层的解决方案。
搭建spring的环境,引入依赖
<dependencies><!-- mybatis-spring --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!-- spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.21.RELEASE</version></dependency><!-- spring-test的单元测试 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.22.RELEASE</version></dependency><!-- spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.22.RELEASE</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><!-- junit单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!-- javaee --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><!-- Druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><!-- Mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version><scope>runtime</scope></dependency></dependencies>
Spring的注入:
@Testpublic void test01(){//创建一个对象来解析spring的配置文件ApplicationContext ioc=new ClassPathXmlApplicationContext("application.xml");//User user=(User) ioc.getBean("user");user.say();System.out.println(user);}
<?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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.jsoft"></context:component-scan><bean id="user" class="com.jsoft.spring.User"><property name="name" value="张三"></property><property name="address" ref="address"></property>
<!-- 自己定义的类型--><property name="hobbies"><array value-type="java.lang.String"><value>足球</value><value>篮球</value><value>排球</value></array></property>
<!-- list集合--><property name="dutuies"><list value-type="java.lang.String"><value>董事长</value><value>总精灵</value></list></property>
<!-- set集合-->
<property name="carts"><set value-type="java.lang.String"><value>韭菜</value><value>鸡蛋</value></set>
</property><property name="familyTies"><map><entry key="父亲" value="马云"></entry><entry key="母亲" value="121212"></entry></map></property><property name="properties"><props><prop key="alibaba">达摩院</prop></props></property></bean><bean id="address" class="com.jsoft.spring.Address"><property name="addressInfo" value="高新区"></property></bean>
</beans>
package com.jsoft.spring;import lombok.Data;import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;@Data
public class User {public User() {System.out.println("User的无参构造器!");}private String name;private Address address;//爱好private String[] hobbies;//职务private List<String> dutuies;private Set<String> carts;private Map<String,String> familyTies;private Properties properties;public void say(){System.out.println("Hello"+name);}}
Bean的作用域:
prototype:原型模式。多实例模式
singleton:单例模式。默认
request:一次HTTP请求中,一个bean的作用域就是一次请求。
session:一次HTTP会话中,一个bean的作用域就是一次会话。
自动装配:保证我们的容器中能够匹配上对应的bean
byName:根据bean的id名和属性名匹配
byType:根据Bean的类型匹配