Spring的初始化

来源:互联网 发布:js中定义字符串数组 编辑:程序博客网 时间:2024/06/10 21:34

1:认识Spring

        创始人:Rod Johson

       特点:

           a:方便解耦合,简化开发,提升性能(IOC)

           b:Aop面向切面的编程

           c:声明式事务的调试

           d:方便程序的测试

           e:方便集成各大优秀的框架

            f:Java源代码学习的典范


 2: Spring的体系结构

       



3:Java的面向对象,封装、继承、多态。

      Java的本质是什么:面向对象

      对象是怎么创建的:new

      对象职责是:调用方法和给属性赋值


   JavaBean的作用

       a:为什么要生成getter/setter呢?(就是为了给属性赋值)




3、快速搭建一个SpringWeb框架,实现登录

案例:Springmvc +Hibernate实现helloword

  1、下载spring所需要的包

  2、项目结构搭建   

        

   3、结构分析和详细代码

       (1)、applicationContext.xml

                     <!-- 扫描文件所在dao包 -->
<context:component-scan base-package="com.Heart.dao"></context:component-scan>
<context:component-scan base-package="com.Heart.service"></context:component-scan>

      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/tzspring?useUnicode=true&amp;characterEncoding=utf8"></property>
<property name="username" value="root"></property>
<property name="password" value="12345"></property>
</bean>

<!-- springjdbctempte查询模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>


(2)、web.xml

   <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- 编码拦截控制 -->
  <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <!-- springmvc注册 -->
  <servlet>
    <servlet-name>tzspringmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>namespace</param-name>
      <param-value>tzspringmvc</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>tzspringmvc</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


(3)、tzspringmvc.xml

     <!-- springmvc 是多例 -->
   <context:component-scan base-package="com.Heart.web"></context:component-scan>
   
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="viewClass"
       value="org.springframework.web.servlet.view.JstlView"></property>
       <property name="prefix" value="/WEB-INF/pages/"></property>
       <property name="suffix" value=".jsp"></property>
   </bean>


(4)、user.java

       public class User implements java.io.Serializable{
private Integer id;
private String username;
private String password;
private String email;
private Integer age;
private Date createTime;
private String address;

     同时生成他们的set get  构造方法


(5)、UserDao.java

    

@Repository
public class UserDao {


@Autowired
private JdbcTemplate jdbcTemplate;

public boolean saveUser(User user){

       /**
        * 保存用户信息
        */
String sql = "INSERT into tz_user(username,password,age,address,email)VALUES(?,?,?,?,?)";
   //保存、修改、删除都是update
int count = jdbcTemplate.update(sql,user.getUsername(),user.getPassword(),user.getAge(),user.getAddress(),user.getEmail());
return count >0 ?true:false;
}

/**
* 查询用户信息
*/
@SuppressWarnings("unchecked")
public List<User> findUser(){
String sql = "select id,username,address,'password',email,create_time from tz_user";
final List<User> users = new ArrayList<User>();
jdbcTemplate.query(sql, new RowMapper(){
@Override
public Object mapRow(ResultSet rs,int index) throws SQLException{
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setCreatTime(new Date(rs.getTimestamp("create_time").getTime()));
users.add(user);
return user;
}
 
});
return users;
}
}




@Repository
public class UserDao {


@Autowired
private JdbcTemplate jdbcTemplate;

public boolean saveUser(User user){

       /**
        * 保存用户信息
        */
String sql = "INSERT into tz_user(username,password,age,address,email)VALUES(?,?,?,?,?)";
   //保存、修改、删除都是update
int count = jdbcTemplate.update(sql,user.getUsername(),user.getPassword(),user.getAge(),user.getAddress(),user.getEmail());
return count >0 ?true:false;
}

/**
* 查询用户信息
*/
@SuppressWarnings("unchecked")
public List<User> findUser(){
String sql = "select id,username,address,'password',email,create_time from tz_user";
final List<User> users = new ArrayList<User>();
jdbcTemplate.query(sql, new RowMapper(){
@Override
public Object mapRow(ResultSet rs,int index) throws SQLException{
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setCreatTime(new Date(rs.getTimestamp("create_time").getTime()));
users.add(user);
return user;
}
 
});
return users;
}
}


(6)、UserService.java

   @Service
public class UserService {
    
@Autowired
private UserDao userDao;

/**
* 保存用户信息
*/

public boolean saveUser(User user){
return userDao.saveUser(user);
}


/**
* 查询用户信息

*/
public List<User> findUser(){
return userDao.findUser();
}
}


(7)、UserController.java

     @Controller
public class UserController {


@Autowired
private UserService userService;

@RequestMapping("/user")
public ModelAndView user(){
ModelAndView modelAndView = new ModelAndView();
List<User> users = userService.findUser();
modelAndView.addObject("users",users);
modelAndView.setViewName("user");
return modelAndView;
}

@RequestMapping("/user/save")
public ModelAndView usersave(HttpServletRequest request){
ModelAndView modelAndView = new ModelAndView();
User user = new User();
user.setAge(Integer.parseInt(request.getParameter("age")));
user.setUsername(request.getParameter("username"));
user.setPassword(request.getParameter("password"));
user.setAddress(request.getParameter("address"));
user.setEmail(request.getParameter("email"));
boolean flag = userService.saveUser(user);
if(flag){
modelAndView.setViewName("success");
System.out.println("保存成功");
}else{
modelAndView.setViewName("fail");
System.out.println("保存失败");
}
return modelAndView;
}
}


创建 user.jsp

     <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<!DOCTYPE HTML >
<html>
  <head>
   
    
    <title>My JSP 'user.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

  </head>
  
  <body>
    <c:forEach var="user" items="${users}">
      <h1>${user.id}====${user.username}===${user.email}</h1>
    </c:forEach>
    
    <form action="user/save.html" method="post">
      <p>用户名:<input type="text" name="username"></p>
      <p>密码:<input type="text" name="password"></p>
      <p>年龄:<input type="text" name="age"></p>
      <p>邮箱:<input type="text" name="email"></p>
      <p>地址:<input type="text" name="address"></p>
      <input type="submit" value="注册">
    </form>
  </body>
</html>


     运行程序:http://localhost:8080/Heart_Springmvc/user.html

          

   返回成功   



查看数据库是否添加成功

           

0 0