Here's a look at the picks we liked:
Jimmie Ward, SS (first round, No. 30 overall)
Yes, Jimmie Ward may be a small-school product, but the kid is arguably the most versatile defensive back in this year's draft. He can cover on the outside, battle receivers in the slot and even play deep safety in the middle of the field.
He probably won't start at free safety this year, but he will log plenty of snaps in sub-package situations.
Carlos Hyde, RB (second round, No. 57 overall)
Who would have thought Hyde would have been available at No. 57 overall? More than a few draft analysts thought he would be the first running back off the board. Fortunately for the 49ers, he wasn't. And San Francisco now has Frank Gore 2.0.
Hyde is a big, strong, athletic back who punishes defenders. Marcus Lattimore's future may not be as bright as we once thought it was.
Marcus Martin, OC (third round, No. 70 overall)
The 49ers didn't necessarily need a center because of Daniel Kilgore, but why not? When you have 12 picks in the draft like San Francisco did, you are in a good position to take the best player available no matter what the position is.
Martin was the top-ranked center on most draft analysts boards, so his fall to the third round was baffling. This was nothing more than a good value pick.
Chris Borland, ILB (third round, No. 77 overall)
Borland was a polarizing prospect to some. Some people hated him based on the fact he struggled to get off blocks, but others loved him because of his instincts and pass-rush ability. If the 49ers can coach him up, Borland has a shot to be Patrick Willis' replacement down the line.
Brandon Thomas, OG (third round, No. 100 overall)
I rarely like it when teams draft players who are coming off ACL injuries, but this is one pick I can get behind. Thomas would have easily been a first-round pick if he wouldn't have torn his ACL during his workout with the New Orleans Saints.
He will redshirt his rookie season for the 49ers and look to make an impact in 2015.
Bruce Ellington, WR (fourth round, No. 106 overall)
With the Bruce Ellington pick and the trade for Stevie Johnson, the 49ers' wide receiving corps has done a complete 180. Mel Kiper Jr. believed Ellington had the potential to be a first-round pick, which means San Francisco scored big here in the fourth round.
Ellington will need some polish, but he is shifty and can make big-time plays in the open field.
Dontae Johnson, CB (fourth round, No. 129 overall)
Johnson flew under the radar in 2013 but look for him to fit in well in San Francisco. He is a press-man corner who annoys wide receivers at the line of scrimmage. Additionally, he has good ball skills and can track pass-catchers deep down the field.
Aaron Lynch, DE (fifth round, No. 150 overall)
Despite the fact this pick came in the fifth round, 49ers fans should be excited about Lynch. No, he has never lived up to expectations, but if Harbaugh can get him to flip the switch and turn it on, watch out.
He has the potential to be great as an outside linebacker in San Francisco's 3-4 scheme.